本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

数据结构--排序

发布于2021-03-07 17:05     阅读(792)     评论(0)     点赞(2)     收藏(1)


将无序的序列变成一个有序的序列

一、插入排序

边插入边排序,保证随时都是有序的

1.直接插入排序

复制(为哨兵)插入的元素,记录后移,查找插入位置,插入正确位置
在这里插入图片描述

2.二分插入排序

将目标值放在哨兵位置,利用折半的思想,来寻找插入的位置
在这里插入图片描述
在这里插入图片描述

3.希尔插入排序

将整个待排记录序列分成若干个子序列,再进行直接插入排序
在这里插入图片描述
分成不同的间隔,将颜色相同的序列进行一组排序,一次排序移动位置较大,跳跃式地接近排序的最终位置,最后一次只需少量移动,增量序列必须是递减的,最后一个必须是1,增量序列必须是互质的。
在这里插入图片描述

二、交换排序

1.冒泡排序

过程(像是水中重的物质沉底,轻的物质上浮):
在这里插入图片描述
算法,设置一个flag为标志:

在这里插入图片描述

2.快速排序

利用递归的思想,找一个中心点为参考,比它小的,放在前面,比它大的放在后面,一直进行同一个操作。将空的位置补充比它小的元素,有点拆西墙补东墙的感觉。不稳定的排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、选择排序

1.简单选择

原理:每一次比较取最小值,与当前位置的值进行 互换,
比如说,第一次,08是最小的,然后08和21的位置互换
然后从第二个位置,发现16是最小的那么16和25进行互换
以此类推
在这里插入图片描述
在这里插入图片描述

2.堆排序

在这里插入图片描述
就是一个二叉树按照大小进行的,对堆按照大小进行调整和建立。
在这里插入图片描述

四、归并排序

将两个相邻的子序列归并为一个序列
在这里插入图片描述

五、基数排序

分配+收集
将其化成几个箱子,按照个位百位十位这样分
在这里插入图片描述

六、各种方式的比较

在这里插入图片描述

原文链接:https://blog.csdn.net/weixin_45638522/article/details/114379117



所属网站分类: 程序员的那点事

作者:phpNumOne

链接:http://www.phpheidong.com/blog/article/82/8076a9fb2f1c27a012c4/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)