码迷,mamicode.com
首页 >  
搜索关键字:heapsort    ( 166个结果
堆排序【代码】
思路参考《算法导论》P84 堆排序中用到的最重要的就是堆这种数据结构,也正是因为这种数据结构能把时间复杂度控制在O(n * lgn) heapsort算法主要依赖于两个函数 MAX_HEAPIFY(int *A,int i,int len) 用于维护最大堆,时间复杂度为O(lgn),注意书上描述这个 ...
分类:编程语言   时间:2018-01-13 18:52:57    阅读次数:205
堆排序
//heapsort #include using namespace std; const int maxn =105; int a[maxn]; int n; void HeapInsert(int a[],int index) { while(a[index] > a[(index-1)/2]... ...
分类:编程语言   时间:2018-01-13 14:23:44    阅读次数:164
堆排序
一、堆排序算法的基本特性时间复杂度:O(nlgn)...//等同于归并排序最坏:O(nlgn)空间复杂度:O(1).不稳定。 二、堆与最大堆的建立要介绍堆排序算法,咱们得先从介绍堆开始,然后到建立最大堆,最后才讲到堆排序算法。 2.1、堆的介绍 如下图, a),就是一个堆,它可以被视为一棵完全二叉树 ...
分类:编程语言   时间:2018-01-01 11:46:41    阅读次数:177
堆排序
public static int[] heapSort(int[] arr) { int i; for (i = arr.length / 2; i >= 0; i--) { heapAdjust(arr, i, arr.length - 1); } for (i = arr.length - 1... ...
分类:编程语言   时间:2017-12-30 22:39:33    阅读次数:205
数据结构与算法之排序算法(三):选择排序
选择排序可以分为:简单选择排序和堆排序(已知位置,找元素)1.简单选择排序原理:就是直接从待排序数组里选择一个最小(最大)的数字,顺序放入数组里,直到数组排好序代码实现:for(int i=0;i 0; i--){ heapAdjust(arr, i, a.length); } //排序 for(i... ...
分类:编程语言   时间:2017-12-14 19:23:14    阅读次数:117
堆排序
堆排序 public class HeapSort { public static void buildMaxHeap(int[] data, int lastIndex){ for(int i=(lastIndex 1)/2;i =0;i ){ //k保存正在判断的节点 int k=i; //如果 ...
分类:编程语言   时间:2017-12-08 19:25:21    阅读次数:162
堆排序
public class HeapSort { 1. 2. public static void sort(Comparable[] data) { 3. // 构建最大堆 4. buildMaxHeap(data); 5. // 循环,每次把根节点和最后一个节点调换位置 后面的扔了搞前面的 ... ...
分类:编程语言   时间:2017-11-27 12:47:49    阅读次数:163
堆排序HeapSort
堆排序,顾名思义,是采用数据结构堆来进行排序的一种排序算法。 研究没有规律的堆,没有任何意义。特殊的堆有最大堆(父节点值大于等于左右字节点值),最小堆(父节点值小于等于子节点值)。一般采用最大堆来进行排序,图1为最大堆来表示一维数组。 图1 最大堆表示一维数组 2叉树堆的几点特性 1、 最后父节点索 ...
分类:编程语言   时间:2017-11-14 20:10:26    阅读次数:307
HeapSort
/*堆排序(大顶堆)*/ #include #include using namespace std; void HeapAdjust(int *a,int i,int size) //调整堆 { int lchild=2*i; //i的左孩子节点序号 int rchild=2*i+1; //i的右... ...
分类:其他好文   时间:2017-11-12 18:35:18    阅读次数:136
堆排序——HeapSort
基本思想: 图示: (88,85,83,73,72,60,57,48,42,6) 平均时间复杂度: O(NlogN)由于每次重新恢复堆的时间复杂度为O(logN),共N - 1次重新恢复堆操作,再加上前面建立堆时N / 2次向下调整,每次调整时间复杂度也为O(logN)。二次操作时间相加还是O(N ...
分类:编程语言   时间:2017-11-09 22:44:59    阅读次数:261
166条   上一页 1 ... 4 5 6 7 8 ... 17 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!