数据结构--排序
无心流泪
这个作者很懒,什么都没留下…
展开
-
堆排序
http://www.cnblogs.com/dolphin0520/archive/2011/10/06/2199741.html 堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:转载 2013-10-01 13:56:06 · 712 阅读 · 0 评论 -
堆排序
#include #include#includeusing namespace std;// 构造大顶堆// a 是要进行调整的堆数组 i是从第i个元素开始调整(其实就是最靠后的一个不是叶子节点的节点)// size是要进行调整的对数组的元素个数 用于确定在往下递归的时候不越界// 这是在调整堆的时候的单独调用模块就是 调整单个节点的模块void heapAdjust原创 2013-10-02 15:58:25 · 760 阅读 · 0 评论 -
支持动态维护的堆排序
#include #include#includeusing namespace std;//动态的维护一个大顶堆 支持 添加数据 和删除堆顶数据 并且总保持有序状态//数组从a[1] 开始void addAdjust(int *a,int size){ int id = size; while(id!=0&&a[id]>a[id/2]) {原创 2013-10-02 16:34:01 · 1044 阅读 · 0 评论 -
快速排序的性能分析
快速排序算法详细分析快速排序 Quick Sort我们已经知道,在决策树计算模型下,任何一个基于比较来确定两个元素相对位置的排序算法需要Ω(nlogn)计算时间。如果我们能设计一个需要O(n1ogn)时间的排序算法,则在渐近的意义上,这个排序算法就是最优的。许多排序算法都是追求这个目标。下面介绍快速排序算法,它在平均情况下需要O(nlogn)时间。这个算法是由C.A.R.H转载 2013-10-03 11:36:37 · 1242 阅读 · 0 评论 -
一道关于排序的题目
下列排序算法中,不受数据初始状态影响,时间复杂度为O(n*logn)的是A.堆排序 B.冒泡排序 C.直接选择排序 D.快速排序A。在堆排序和快速排序中,若原始记录接近正序或反序,则选用(堆排序),若原始记录无序,则最好选用(快速排序)。C错了。C的原题是下列排序法中,时间复杂度不受数据初始状态影响,总是为O(n原创 2013-10-03 11:43:14 · 1506 阅读 · 0 评论 -
几种冒泡(起泡)排序的总结
http://blog.csdn.net/wahaha_hehongwei/article/details/6741360几种冒泡(起泡)排序的总结今天把几种冒泡排序都实现了一下,大概总结一下,个人笔记,有误帮我指出,谢谢!我总结的大概有这几种冒泡排序:1、 带标志的普通冒泡排序2、 双向冒泡排序(鸡尾酒冒泡排序)3、转载 2013-09-18 13:13:53 · 1273 阅读 · 0 评论