推广 热搜: page  关键词  数据分析  服务  数据分析系统  搜索  获取  哪些  链接  搜索引擎 

【数据结构-C语言】快速排序,希尔排序

   日期:2025-01-03     作者:8xdgq    caijiyuan   评论:0    移动:https://sicmodule.kub2b.com/mobile/news/15130.html
核心提示:1、快速排序、 快排是一种递归思想的排序算法,先比较其他的排序算法,它需要更多内存空间,但快排的语句频度

1、快速排序、

快排是一种递归思想的排序算法,先比较其他的排序算法,它需要更多内存空间,但快排的语句频度是最低的,理论上时间效率是最高的。

快速排序的基本思路是:在待排序序列中随便选取一个数据,作为所谓“支点”,然后所有其他的数据与之比较,以从小到大排序为例,那么比支点小的统统放在其左边,比支点大的统统放在其右边,全部比完之后,支点将位与两个序列的中间,这叫做一次划分(partition)。

一次划分之后,序列内部也许是无序的,但是序列与支点三者之间,形成了一种基本的有序状态,接下去使用相同的思路,递归地对左右两边的子序列进行排序,直到子序列的长度小于等于1为止。

2、快速排序核心思想

while循环进行初次排序,第一个元素为0,第二个元素为len-1;嵌套两次while判断,根据自身需要的排序顺序,一次从右往左边比较(i++,一次从左向右比较(j--,逆序交换;返回中间的下标pivot

使用递归思路

 

3、快速排序实现代码

 

4、希尔排序

希尔排序是一种改进版的插入排序,普通的插入排序算法中,是从第2个节点开始,依次插入到有序序列中,这种做法虽然“一次成形”,但研究发现时间效率上这么做并不划算,更“划算”的做法是这样的

不严格一个个插入使之有序,而是拉开插入节点的距离,让它们逐步有序

5、希尔排序核心思想

选择排序的进阶排序算法

每次循环的间距为数组的一半,求出节点个数,间距为delta

第一次循环从delta开始遍历(遍历的第三个条件i+=delta,建立临时嵌套循环从i-delta开始(遍历的第三个条件为j-=delta,根据自身需要的顺序进行判断,满足则退出,不满足则进行交换

 

6、希尔排序实现代码

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

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

 
 
更多>同类最新资讯
0相关评论

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