快速排序-C语言实现

ゞ 浴缸里的玫瑰 2022-04-02 06:24 315阅读 0赞
  1. #include<stdio.h> //快速排序完成
  2. void QuickSort(int [],int,int);
  3. int FindPos(int *a,int,int);
  4. int main(void){
  5. int i;
  6. int a[6] ={2,1,2000,99,4,3};
  7. QuickSort(a,0,5);
  8. for(i=0;i<6;i++){
  9. printf("%d\n",a[i]);
  10. }
  11. return 0;
  12. }
  13. void QuickSort(int *a,int low,int high){
  14. int pos; //找位置
  15. if(low<high){
  16. pos =FindPos(a,low,high);
  17. QuickSort(a,low,pos-1);
  18. QuickSort(a,pos+1,high);
  19. }
  20. }
  21. //找位置
  22. int FindPos(int *a,int low,int high){
  23. int val =a[low];
  24. while(low < high){
  25. while(low < high && a[high]>=val){
  26. --high;
  27. }
  28. a[low] =a[high];
  29. while(low<high &&a[low]<=val){
  30. ++low;
  31. }
  32. a[high]=a[low];
  33. }
  34. a[low] = val;
  35. return low; //返回的排序一趟的位置 low 和high都行因为终止条件是low= high
  36. }

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读

    相关 c语言实现快速排序

    快速排序是一种快速的排序算法。它的基本思想是,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别

    相关 快速排序算法(C语言实现

    快速排序算法(C语言实现) 快速排序是一种基于比较的排序算法,它采用递归分治策略来排序一个序列。快速排序算法是所有基于比较的排序算法中,平均情况下表现最好的一种算法。快速排序

    相关 快速排序C语言实现

    快速排序是一种常用且高效的排序算法,它基于分治策略,通过将数组分成较小的子数组并对它们进行排序,最终将它们合并以得到排序后的数组。下面我们将介绍如何使用C语言实现快速排序,并附