temp=main[i-1];
main[i-1]=main[i];
main[i]=temp;
}
}
}
//折半插入排序
void bi_insert_sort(int *main,int len)
{
int temp;
for(int j=1;j
for(int i=j;i>0;i--)
{
if(main[i]
int head=0;
int rear=i;
for(int mid;head
mid=(rear+head)/2;
if(main[mid] >=main[i]) rear=mid;
else head=mid+1;
}
temp=main[i];
int k=i;
for(;k>head;k--)
{
main[k]=main[k-1];
}
main[head]=temp;
}}
}
}
//快速里分二分之一的程序段
int partition(int *main,int low,int high)
{
main[0]=main[low];
int e=main[low];
while(low
while(low
main[low]=main[high];
while(low
}
main[low]=main[0];
return low;
}
//快速排序
void kqsort(int *main,int low,int high)
{
if(low
int e=partition(main,low,high);
kqsort(main,low,e-1);
kqsort(main,e+1,high);
}
}
bool sort()
{
cout<
int *main;
cout<
error(len);
main=(int*)malloc(len*sizeof(int));
for(int i=0;i
cout<<"请输入第"< cin>>main[i];
error(main[i]);
}
int menu=-1;
while(menu!=0)
{
cout<<"查看原数组,请按-->1"<
error(menu);
cout<
else{
switch(menu)
{
case 1:
slook(main,len);
break;
case 2:
insert_sort(main,len);
slook(main,len);
break;
case 3:
bi_insert_sort(main,len);
slook(main,len);
break;
case 4:
bb_sort(main,len);
slook(main,len);
break;
case 5:
int* mai=(int*)malloc((len+1)*sizeof(int));
for(int i=len+1;i>1;i--)mai[i]=main[i-1];
kqsort(mai,0,len);
slook(mai,len);
for(int i=len+1;i>1;i--)main[i-1]=mai[i];
}
}}
return 0;
}
#endif