L r0.key=d[; i //BiInsert Sort 10.25 void slinsert_Sort( SLList&L静态链表的插入排序算法 L r[0]. key=0; L r[O Lr[l]next=0;∥建初始循环链表 for(i=2= L length;计+)∥逐个插入 p=0; xL. r[i]. key while(l rL. rp). next]. key<x&&L rIp). next) p=L rp].next q=LrIp).next L rp].next=i L ri]. next=q g//for p=L r[O].next for(i=1< L length;i+)∥重排记录的位置 while(p<i) p=L rIp]. next q=L rp]. next if(pl=i L. rIpk->L rp r[]. next=p: i//for M//SLInsert Sort 10.26 void Bubble_ Sortl(inta[] int n )/对包含n个元素的数组a进行改进的冒泡排序 change=n-1;∥ change指示上一趟冒泡中最后发生交换的元素 while(change) for(c=0, F0; K<change; i++) if(aiAi+ID aj<->a[i+1] C=计+1;∥指示这一趟冒泡中发生交换的元素L.r[j].key=d[i]; }//BiInsert_Sort 10.25 void SLInsert_Sort(SLList &L)//静态链表的插入排序算法 { L.r[0].key=0;L.r[0].next=1; L.r[1].next=0; //建初始循环链表 for(i=2;i<=L.length;i++) //逐个插入 { p=0;x=L.r[i].key; while(L.r[L.r[p].next].key<x&&L.r[p].next) p=L.r[p].next; q=L.r[p].next; L.r[p].next=i; L.r[i].next=q; }//for p=L.r[0].next; for(i=1;i<L.length;i++) //重排记录的位置 { while(p<i) p=L.r[p].next; q=L.r[p].next; if(p!=i) { L.r[p]<->L.r[i]; L.r[i].next=p; } p=q; }//for }//SLInsert_Sort 10.26 void Bubble_Sort1(int a[ ],int n)//对包含 n 个元素的数组 a 进行改进的冒泡排序 { change=n-1; //change 指示上一趟冒泡中最后发生交换的元素 while(change) { for(c=0,i=0;i<change;i++) if(a[i]>a[i+1]) { a[i]<->a[i+1]; c=i+1; //c 指示这一趟冒泡中发生交换的元素 }