排序問題 直接插入排序

2021-08-14 16:49:29 字數 971 閱讀 7991

1、插入排序的基本思想:在乙個已經排好的記錄子集的基礎上,每一步將下乙個待排序的記錄有序插入到已排好的記錄子集中,直到將所有待排記錄全部插入為止。例如,打撲克牌時的抓牌就是乙個很好的例子,每抓一張牌,插入到合適的位置,直到抓完牌為止,即可得到乙個有序的序列。

2、直接插入排序的演算法思想:其基本思想是:把待排序的紀錄按其關鍵碼值的大小逐個插入到乙個已經排好序的有序序列中,直到所有的紀錄插入完為止,得到乙個新的有序序列。

c描述:

#include 2

3using

namespace

std;46

//// 寫法1

7void insertsort_0(int arr, int

length)816

else

17break;18

}19 arr[j + 1] =key;20}

21}2223

//// 寫法2

24void insertsort_1(int arr, int

length)

2534 arr[j + 1] =key;35}

36}3738

3940

intmain()41;

43int len = sizeof iarr / sizeof(iarr[0

]);44

45 cout << "

排序前:";

46for (int i = 0; i < len; i++)

4950 cout << "

\n排序後:";

51insertsort_0(iarr, len);

52for (int j = 0; j < len; j++)

55 cout <5657 system("

pause");

58return0;

59 }

排序問題 直接插入排序

插入排序 演算法 include include using namespace std 公升序排列 void sort int a a j 1 key 降序排列 void sort int a void result int a printf n void main sort a result a...

插入排序 直接插入排序

直接插入排序演算法思想 將整個資料表分成左右兩個子表,其中左子表為有序表,右子表為無序表 整個排序過程就是將右子表中的元素逐個插入到左子表中,直到右子表為空,而左子表成為新的有序表。演算法過程分析 將待排序的元素存放在陣列r n 1 中,在初始狀態下,r 0 為監視哨,r 1 為有序區,r 2 r ...

插入排序 直接插入排序

一.插入排序的基本思想 將乙個記錄插入已排序好的有序表中,從而得到乙個新的記錄數加1的有序表。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。所謂的哨兵,就是即將插入的記錄。二.示例 如果碰見相等的元素,會被插到後面,所以,相等元素的前後順序沒有改變,插入排序是穩定的。三.演算法實現 public ...