搜索
查看: 352|回复: 0
打印 上一主题 下一主题

快速排序

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2021-1-3 20:19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int a[10];
  4. void sort(int left, int right){
  5.     int i,j,t,temp;
  6.     if (left>=right) return;
  7.     temp=a[left-1];
  8.     i=left;
  9.     j=right;
  10.    
  11.     while(i!=j){
  12.         
  13.         while(a[j]>=temp && i<j) j--;
  14.         while(a[i]<=temp && i<j) i++;
  15.         if(i<j){
  16.             t=a[i];
  17.             a[i]=a[j];
  18.             a[j]=t;
  19.         }
  20.     }
  21.     a[left-1]=a[i];
  22.     a[i]=temp;
  23.     for (int z = 0; z<10; z++) printf("%d ",a[z]);
  24.     printf ("");
  25.     sort(left,i-1);
  26.     sort(i+1,right);
  27.     return;
  28. }
  29. int main()
  30. {
  31.     for (int i=0;i<10;i++) scanf("%d",&a[i]);
  32.     sort(1,9);
  33.     for(int i=0;i<10;i++) printf("%d ",a[i]);
  34.     getchar();
  35.     return 0;
  36. }
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表