排序問題 直接插入排序

2021-07-07 05:01:33 字數 639 閱讀 7173

插入排序 演算法:

#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);

}

演算法思想:

————————————————————

按折半查詢法確定插入位置的過程為:

1、r[0]=r[j]; (r[j]送r[0]中,使r[j]為待插入記錄空位)

i=j-1; (從第i個記錄向前測試插入位置,用r[0]為輔助單元,可免去測試 i<1)

2、若r[0].key>r[i].key,轉4 (插入位置確定)

3、若r[0].key<=r[i].key,

r[i+1]=r[i]; i=i-1; 轉2 (調整待插入位置)

4、r[i+1]=r[0]; 結束 (存放待插入記錄)

排序問題 直接插入排序

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

插入排序 直接插入排序

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

插入排序 直接插入排序

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