当前位置:   article > 正文

C语言实现快速排序算法_c语言快速排序代码

c语言快速排序代码

目录

嗨,这里是狐狸~~ 

快速排序的思想:

快速排序的流程:

整个算法处理过程:

 算法动态演示:

 代码如下:

总结


愿天上的每一个流星,都为你而闪耀天际。

嗨,这里是狐狸~~ 

今天是2021年12月17日,星期五,距离2022年还有14天,今天又来和大家见面了,时光荏苒,趁还有些时日,多发些有用的知识出来,也希望大家可以认真看,认真学,不要任当下时间流逝了。

好,今天来讲什么呢?讲下排序算法吧,全部讲完肯定不可能,我们今天来看下其中的一种——快速排序,带大家一起学习快速排序算法

 

快速排序的思想:

1 先从数组中选取一个数作为基准点,可随机选择;
2 将数组中大于该基准点的放在该基准点右边,小于该基准点的放在该基准点左边;
3 对左右两个数组进行快速排序。

 

快速排序的流程:

整个算法处理过程:

 算法动态演示:

 代码如下:

让我们来看下怎么实现快速排序算法

  1. #include <stdio.h>
  2. void swap(int a[], int low, int high) //交换两个数的值
  3. {
  4. int t = a[low];
  5. a[low] = a[high];
  6. a[high] = t;
  7. }
  8. int partition(int a[], int low, int high) //计算基准点,分割为左右两个数组
  9. {
  10. int point = a[low];//基准点等于第一个元素
  11. /* while(1){
  12. while(low<high && a[++low]<point);
  13. while(a[--high]>point);
  14. if(low>=high) break;
  15. */
  16. while(low<high)
  17. {
  18. while(low<high && a[high]>=point)//控制high指针比较并左移
  19. {
  20. high--;
  21. }
  22. swap(a,low,high);
  23. //}
  24. while(low<high && a[low]<=point)//控制low指针比较并右移
  25. {
  26. low++;
  27. }
  28. swap(a,low,high);
  29. }
  30. return low;//返回基准点位置
  31. }
  32. void quicksort(int a[], int low, int high) //low:起始位置 high:末尾位置
  33. {
  34. if(low<high){
  35. int point = partition(a,low,high);//计算基准点
  36. quicksort(a,low,point-1); //对基准点的左边进行排序
  37. quicksort(a,point+1,high);//对基准点的右边进行排序
  38. }
  39. }
  40. int main()
  41. {
  42. int i;
  43. int a[] = {5,13,6,24,2,8,19,27,6,12,1,17};
  44. int N = 12;
  45. quicksort(a, 0, N-1);
  46. for(i=0; i<N; i++) printf("%d ", a[i]);
  47. printf("\n");
  48. return 0;
  49. }

总结

OK,简单总结一下,最开始学习编程,遇到排序问题,一般都是用冒泡法,因为冒泡法好理解,代码量少。但是这种算法时间复杂度高,当需要排序的元素较多时,程序运行时间很长,因此产生了快速排序算法。不知道大家弄懂了没有,没有弄懂一定要收藏起来反复的查阅,一定要有不弄懂不罢休的态度才行,哈哈哈,今天就到这里啦,在这里希望可以得到大家的关注以及点赞啦,希望大家可以多多支持!!你们的点赞就是我坚持下去的动力!

后续我还会发布更多的项目源或者学习资料,希望大家可以持续关注,有什么问题可以回帖留言。想要提前掌握的可以加群领取C/C++学习资料以及其他项目的源码的可以加群【1083227756】了解。想要对程序员的未来发展有兴趣的可以关注微信公众号:【狐狸的编码时光】,希望和大家一起学习进步。

想了解其他排序算法的也可以点击下方链接查看视频讲解

https://www.bilibili.com/video/BV1FP4y1V7Kg/https://www.bilibili.com/video/BV1FP4y1V7Kg/icon-default.png?t=LA92https://www.bilibili.com/video/BV1FP4y1V7Kg/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程领航者/article/detail/62987
推荐阅读
相关标签
  

闽ICP备14008679号