完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
主要用几句话来面熟计算机中常用的基本的几个排序算法。 1. 冒泡排序: 采用递推的方式,两两比较。小的向上换(主要讨论从小到大),大的向下换。两层循环,第一层控制排序的躺数,第二次控制元素大小比对和交换工作。 2. 快速排序: 最好的一种排序方式。主要是先通过三位选中(就是在此数组中左右中取三个数,然后比较大小取出中位数作为枢轴)。然后,通过低指针和高指针依次和枢轴作比较,高指针指向的大于枢轴的元素不用交换,低指针指向的小于枢轴的元素不用交换。直到高低指针指向小于等于或者大于等于的元素后直接交换元素。一趟过后,在低子分区和高子分区中继续进行递归快速排序方式。(一种优化方法是三位选中,第二种是在最后高低分区中,high – low <= 7 的时候,切换成插入排序法。) 3. 选择排序: 外部循环控制排序几个元素,内部循环负责选择剩余元素中最小的元素,然后将此元素放入到外部循环控制位置上。 4. 堆排序: 使用完全二叉树结构的大根堆来完成排序的。在此结构上还需要下沉算法(下沉算法主要是使用节点元素和左右子节点比较大小来进行交换下沉的。)先使用下沉算法将完全二叉树的大根堆数组进行构造大根堆顺序。然后,将根节点和最后一个节点进行交换,然后将最后索引-1。此时最大元素被放置在数组最后一个位置。再使用下沉算法将刚刚换上去的元素进行下沉操作,直到下沉到合适的位置。反复操作就可以得到一个堆排序完成的有序数组了。(完全二叉树可以使用数组来进行序号存储。) 5. 插入排序: 外部循环控制控制元素个数,内部循环主要是先比较这次元素和前者的大小,如果后者小的话就将后者向前交换,接着在让它跟这时的前者再比较,如果还小就继续向前交换。直到没有不符合的条件为止。 6. 希尔排序: 插入排序的优化升级。 可以理解为将插入排序的 a[ j - 1]中的1,变为希尔排序中的increment的量。只不过是increment这个值是由大数字循环变成1的。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
12131 浏览 2 评论
4466 浏览 3 评论
3696 浏览 5 评论
9524 浏览 47 评论
4499 浏览 9 评论
706浏览 0评论
507浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:04 , Processed in 0.577434 second(s), Total 59, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号