# include <stdio.h>
# define MAXSIZE 20
typedef int KeyType;
typedef struct {
KeyType key;
// InfoType otherinfo;
}RedType;
typedef struct{
RedType r[MAXSIZE+1];
int length ;
}SqList;
void InsertSort(SqList &L){
int i,j;
for(i=2;i<L.length;i++){
if(L.r[i].key<L.r[i-1].key){
L.r[0]=L.r[i];
// L.r[i]=L.r[i-1];
for(j=i-1;L.r[j].key>L.r[0].key;j--)
L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
}
void BInsertSort (SqList &L){
int i,j, low,high,m;
for(i=2;i<=L.length;i++){
L.r[0]=L.r[i];
low=1;
high=i-1;
while(low<=high){
m=(low+high)/2;
if(L.r[0].key<L.r[m].key)
high=m-1;
else
low=m+1;
}
for(j=i-1;j>=high+1;j--)
L.r[j+1]=L.r[j];
}
L.r[high+1]=L.r[0];
}
main (){
SqList L;
L.r[1].key=5;
L.r[2].key=3;
L.r[3].key=8;
L.r[4].key=6;
L.length=5;
InsertSort(L);
// BInsertSort (L);
for(int i=1;i<L.length;i++)
printf(" %d ",L.r[i].key);
}
插入排序
最新推荐文章于 2024-01-01 21:38:06 发布