实现直接插入排序-二分法插入排序、希尔排序-冒泡排序-快速排序-直接选择排序的算法
#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; }