数据结构经典排序
文章平均质量分 71
lisa-武理
热爱互联网ITJAVA
展开
-
数据结构经典排序---堆排序
堆排序思想:(以大顶堆为例)1、先建初始堆,从第一个非叶子节点开始调整堆为一个大顶堆,直到整个待排序列成为一个大顶堆;2、将堆顶元素与堆中的最后一个元素交换3、将堆中的最后一个元素移除堆4、再次调整待排序列为一个大顶堆,从堆中的根节点开始比较,比较该节点的左右子节点,将较大的节点值与根节点的值比较,若根节点的值小于较大子节点,则交换;5、转到步骤2,直到堆中所有的元素被移除。原创 2013-09-19 16:14:06 · 519 阅读 · 0 评论 -
数据结构经典排序---快速排序
快速排序:是冒泡排序的改进,采用分治思想实现算法思想:通过一趟排序将待排记录分成两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 一趟快速排序的具体做法是:设两个指针low和high,他们的初值分别为low和high,设枢纽记录的关键字为pivotkey,则首先从high所指的位置起向前搜索到第一个关键字小于枢纽记录,将该记原创 2013-09-20 14:14:41 · 500 阅读 · 0 评论 -
数据结构经典排序---二路归并排序
归并排序算法思想:将初始待排的N个记录看成n个有序的子序列,每个子序列的长度为1,然后两两合并,得到[n/2]个长度为2或1的有序子序列; 再两两归并,直到得到一个长度为N的有序序列为止。总结:1、与快速排序和堆排序相比,归并排序的最大特点是,它是一种稳定的排序方法。 2、空间复杂度为O(N),需要使用一个辅助数组,长度为原创 2013-09-20 18:46:45 · 567 阅读 · 0 评论