推广 热搜: page  小红  红书  数据  论文  考试  数据分析  关键词  哪些  搜索 

【C语言编程入门笔记】排序算法之快速排序,一文轻松掌握快排!

   日期:2025-01-03     移动:https://sicmodule.kub2b.com/mobile/quote/18294.html

排序算法一直是c语言重点,各个算法适应不用的环境,同时,在面试时,排序算法也是经常被问到的。今天我们介绍下快速排序,简称就是快排。

1.快速排序思想:

快排使用 分治法 (Divide and conquer)策略,将一个序列分为两个子序列。(快排算法中使用到了递归,对递归不太熟的,可以参考我前一篇文章)。具体步骤如下:

 从数列中挑出一个元素,称为"基准"(Pivot);

 重新排序数列,所有元素比基准小的摆放在最前面,所有元素比基准值大的放在基准的后面(相同的数可以放在任意一边)。在这个分区结束之后,该基准就处于数列的中间位置。如上操作便称为"分区(Partition)"操作。

 递归的把小于基准值元素的子数列和大于基准值的子数列排序。

2.快速排序注意点:

递归的最底部情形,是数列的大小是0或1,也就是永远都已经被排序好了。

虽然一直会递归,但是不用担心,这个算法总会结束。毕竟在每次迭代中,至少会把一个元素摆到它最后的位置去。

 快排时间复杂度为:O(nLog n);

3.快速排序代码实现:

① 数据结构部分:

② 快速排序递归部分:

③寻找"基准"部分:

④ main函数调用:

如果你也想学计算机编程的话!

可以来我的网页链接

还有免费(零基础教程,项目实战教学视频)!   

涉及:游戏开发、课程设计、常用软件开发、编程基础知识、黑客等等...

和志同道合的小伙伴们一起学编程吧!

4.代码实现结果:

每天进步一点点,每天消化一点点。如果你有更好的想法,欢迎一起交流。如果文章对你有所帮助,点个赞呗。

本文地址:https://sicmodule.kub2b.com/quote/18294.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号