|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
没有输出,好奇怪,麻烦鱼油们看一下吧
- #include<stdio.h>
- void supersort(int a[],int left,int right)
- {
- int i = left,j = right,middle = (i+j)/2;
- int flag = a[middle],temp;
- while(i<=j)
- {
- while(a[i] <= flag)
- {
- i++;
- }
- while(a[j] >= flag)
- {
- j++;
- }
- if(i<=j)
- {
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- i++;
- j--;
- }
- }
- if(left < j)
- supersort(a,left,j);
- if(right > i)
- supersort(a,i,right);
- }
- int main()
- {
- int a[10]={91,95,102,100,144,155,454,231,45,1},length,i=0;
- length = 10;
- supersort(a,0,length-1);
- for(;i<10;i++)
- printf("%4d",a[i]);
- return 0;
- }
复制代码
本帖最后由 jhanker 于 2020-7-3 17:14 编辑
- #include<stdio.h>
- void supersort(int a[],int left,int right)
- {
- if(left< right){
- int i = left,j= left,middle = (i+j)/2;
- int flag = a[middle],temp;
- temp=a[middle];
- a[middle]=a[right];
- a[right]=temp;
- for( ; j < right ; ++j){
- if(a[j] <= flag){
- temp=a[j];
- a[j]=a[i];
- a[i]=temp;
- i++;
- }
- }
- temp=a[i];
- a[i]=a[right];
- a[right]=temp;
- supersort(a,left,i-1);
- supersort(a,i+1,right);
- }
- }
- int main()
- {
- int a[10]={91,95,102,100,144,155,454,231,45,1},length,i=0;
- length = 10;
- supersort(a,0,length-1);
- for(;i<10;i++)
- printf("%4d",a[i]);
- return 0;
- }
复制代码
|
|