Ô´´úÂ룺
#include
typedef struct //˳Ðò±í´æ´¢½á¹¹ {
int * elem; int length; }SqList;
int main(void) {
SqList L; SqList L1;
void InsertSort(SqList &L); void BInsertSort(SqList &L); Ðò
void BubbleSort(SqList &L); void SelectSort(SqList &L); Ðò
void QuickSort(SqList &L); Ðò
void QSort(SqList &L,int low,int high); int Partition(SqList &L,int low,int high);
void HeapSort(SqList &L); void HeapAdjust(SqList &L,int s,int m);
void MergeSort(SqList &L); Ðò
void MSort(SqList L,SqList &L1,int s,int t);
void Merge(SqList L,SqList &L1,int i,int m,int n);
int n; int * p;
printf(\ÇëÊäÈë˳Ðò±íµÄ³¤¶È£º\ scanf(\
if((p=(int *)malloc((n+1)*sizeof(int)))==0) ´æ´¢¿Õ¼ä { printf(\.\\n\ exit(1); }
//Ö±½Ó²åÈëÅÅÐò //ÕÛ°ë²åÈëÅÅ //ðÅÝÅÅÐò //¼òµ¥Ñ¡ÔñÅÅ //¿ìËÙÅÅ //¶ÑÅÅÐò //¹é²¢ÅÅ//¶¯Ì¬·ÖÅä˳Ðò±í L.elem=p; L.length=n;
if((p=(int *)malloc((n+1)*sizeof(int)))==0) //¶¯Ì¬·ÖÅä˳Ðò±í´æ´¢¿Õ¼ä { printf(\.\\n\ exit(1); }
L1.elem=p; L1.length=n;
printf(\ÇëÊäÈë%d¸öÕûÊý£º\\n\ ÅÅÐòµÄÊý¾Ý
for(int i=1;i<=L.length;i++) scanf(\
printf(\Ñ¡ÔñÅÅÐòËã·¨£º\\n\ printf(\Ö±½Ó²åÈëÅÅÐò\\n\ printf(\ÕÛ°ë²åÈëÅÅÐò\\n\ printf(\ðÅÝÅÅÐò\\n\
printf(\¼òµ¥Ñ¡ÔñÅÅÐò\\n\ printf(\¿ìËÙÅÅÐò\\n\
printf(\¶ÑÅÅÐò\\n\ printf(\¹é²¢ÅÅÐò\\n\
int change=0;
scanf(\
switch(change) { case 1: InsertSort(L);break;
case 2: BInsertSort(L);break; case 3: BubbleSort(L);break; case 4: SelectSort(L);break; case 5: QuickSort(L);break; case 6: HeapSort(L);break; case 7: MergeSort(L);break; default:break; }
//ÊäÈëÒ»×é´ý printf(\ÅÅÐòºóΪ£º\
for(i=1;i<=L.length;i++) printf(\ printf(\
return 0; }
void InsertSort(SqList &L) {
int i=0,j=0;
for(i=2;i<=L.length ;i++) if(L.elem[i]
void BInsertSort(SqList &L) {
int i=0,j=0,low=0,high=0,m=0; for(i=2;i<=L.length ;i++) { L.elem[0]=L.elem [i]; low=1; high=i-1; while(low<=high) { m=(low+high)/2; if(L.elem [0]>L.elem [m]) low=m+1; else high=m-1; } for(j=i-1;j>=high+1;j--) L.elem [j+1]=L.elem [j]; L.elem [high+1]=L.elem[0]; } }
//¸´ÖÆÎªÉÚ±ø
void BubbleSort(SqList &L) {
int i=0,j=0;
for(i=L.length;i>=2;i--) for(j=1;jL.elem [j+1]) { L.elem[0]=L.elem [j]; L.elem [j]=L.elem [j+1]; L.elem [j+1]=L.elem[0]; } } }
void SelectSort(SqList &L) {
int index=0;
for(int i=1;i<=L.length-1 ;i++) { index=i; for(int j=i+1;j<=L.length ;j++) if(L.elem [j] //¿ìÅÅ int Partition(SqList &L,int low,int high) { //½«L.elem[low...high]Ò»·ÖΪ¶þ int pivot=0; ×÷ÊàÖá pivot=L.elem[low]; while(low //ÓÃ×Ó±íµÚÒ»¸ö¼Ç¼
Ïà¹ØÍÆ¼ö£º