1. 程式人生 > >資料結構-插入排序-表插入排序

資料結構-插入排序-表插入排序

插入排序:

①直接插入排序。

②折半插入排序。

③2-路插入排序。

④表插入排序。←this

⑤希爾排序。

表插入排序,用表的方式進行插入排序操作

描述過程:將一個記錄插入到已排好序的有序表中,

優點:避免了移動

時間複雜度:O(n2)


const int SIZE=10;
typedef struct{
	int rc;//記錄項 
	int next;//指標項 
}SLNode;
typedef struct{
	SLNode r[SIZE]; //0號單元為表頭結點 
	int length;     //連結串列當前長度 
}SLinkListType;     //靜態連結串列型別 
void Arrange(SLinikListType &SL){
	int p = SL.r[0].next; // p指示第一個記錄的當前位置
	for(int i=1;i<SL.length;++i){
		while(p<i) p=SL.r[p].next;
		q = SL.r[p].next;
		if(p!=i){
			SL.r[p]←→SL.r[i];
			SL.r[i].next = p; 
		}
		p = q;
	} 
}//Arrange