- 博客(2)
- 收藏
- 关注
原创 排序算法——堆排序
堆排序是指利用堆这种数据结构所设计的一种选择排序算法。堆是一种近似完全二叉树的结构(通常堆是通过一维数组来实现的),并满足性质:以最大堆(也叫大根堆、大顶堆)为例,其中父结点的值总是大于它的孩子节点。 我们可以很容易的定义堆排序的过程: 由输入的无序数组构造一个最大堆,作为初始的无序区 把堆顶元素(最大值)和堆尾元素互换 把堆(无序区)的尺寸缩小1,并调用heapify(A...
2018-06-21 19:58:42 196
原创 排序算法——快速排序
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治策略(Divide and Conquer)来把一个序列分为两个子序列。步骤为: 从序列中挑...
2018-06-20 10:06:00 224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人