自学内容网 自学内容网

数据结构之快速排序、堆排序概念与实现举例

1、快速排序

快速排序是一种高效的排序算法,采用分治法策略。它的基本思想是:通过一个划分操作,将待排序的数组分为两个(尽可能)均等的子数组,使得左侧子数组中的所有元素都不大于右侧子数组中的任何元素,然后对这两个子数组分别进行快速排序,整个排序过程可以递归进行,以此达到整个序列有序。

2、堆排序概念与实现举例

堆排序是一种基于比较的排序算法,它利用堆这种数据结构所设计。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或大于)它的父节点。

实现举例:

将初始待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。
将其移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素的次小值。
重复执行步骤2,直到堆中剩余元素为1,排序完成。


原文地址:https://blog.csdn.net/qq_39311377/article/details/142277329

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!