实现直接插入排序-二分法插入排序、希尔排序-冒泡排序-快速排序-直接选择排序的算法

实现直接插入排序-二分法插入排序、希尔排序-冒泡排序-快速排序-直接选择排序的算法
实现直接插入排序-二分法插入排序、希尔排序-冒泡排序-快速排序-直接选择排序的算法

#define Max 100 ey

{ ey)

{ ey>

{ ey<

i++; ey;

l=1; /* 下限 */

r=i-1; /* 上限 */

while (l<=r)

{

/* 中间位置 */

m=(l+r)/2;

if (x

else l=m+1; /* 下限上移 */

}

/* 插入元素 */

for (j=i-1; j>=l; j--)

R[j+1]=R[j];

R[l].key=x;

}

}

/* 直接选择排序,升序 */

void SelectSort(LineList R[],int n)

{

int i,j,k;

LineList tmp;

for (i=0;i

{

k=i;

for (j=i+1;j

if (R[j].key

k=j; ey)ey=a[i];

printf("\n排序前的数为:\n");

for(i=0;i

printf("%-5d",R[i].key);

printf("\n");

printf("====================================================\n"); BubbleSort(R,n);

printf("冒泡排序后的数为:\n");

for(i=0;i

printf("%-5d",R[i].key);

printf("\n");

StraightInsertSort (R,n);

printf("直接插入排序后的数为:\n"); for(i=0;i

printf("%-5d",R[i].key);

printf("\n");

BinarySort (R,n);

printf("二分插入排序后的数为:\n"); for(i=0;i

printf("%-5d",R[i].key);

printf("\n");

QuickSort(R,0,n-1);

printf("快速排序后的数为:\n");

for(i=0;i

printf("%-5d",R[i].key);

printf("\n");

SelectSort(R,n);

printf("直接选择排序后的数为:\n"); for(i=0;i

printf("%-5d",R[i].key);

printf("\n");

ShellSort(R,n);

printf("希尔排序后的数为:\n");

for(i=0;i

printf("%-5d",R[i].key);

printf("\n\n");

return 0;

}

相关主题
相关文档
最新文档