码迷,mamicode.com
首页 >  
搜索关键字:堆排序    ( 1851个结果
堆排序
/* 利用完全二叉树的性质,一个线性数组可以看做是完全二叉树的层次遍历 每次循环把二叉树按照双亲大于左右孩子的规则调换位置,这样一轮下来,根结点就是最大的那个数 把根结点和最后一个元素交换位置 下一次循环继续调换位置,除了最后一个元素 再一次循环继续调换位置,除了最后一个和倒数第二个元素 依次类推。... ...
分类:编程语言   时间:2016-12-26 22:03:55    阅读次数:255
选择排序
基本思想:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。直接选择排序1.基本思想2.算法分析 堆排序 1.堆的定义2.大根堆和小根堆3.堆排序与直接插入排序的区别 4.基本思想 调整堆符合堆的性质算法 建成初始堆 5.算法分析 【1】时间复杂度为O... ...
分类:编程语言   时间:2016-12-24 22:49:01    阅读次数:202
堆排序算法
1 /* 2 请设计筛选函数void sift(int a[],int k,int n),对a[k] 进行筛选, 3 并利用其设计堆排序算法函数void heapSort(int a[],int n), 4 对a[1]..a[n]进行升序排序。并测试在不同数据规模下的排序效率。(详见lab10_05... ...
分类:编程语言   时间:2016-12-23 14:20:10    阅读次数:213
c语言数据结构之 堆排序
算法:先生成随机数,赋值到数组,将数组第一个元素a[0]设置为哨兵,函数调用数组和随机数个数n,再设定n/2的根结点与孩子结点进行比较操作,若右孩子存在,则选出三个数里最小的数赋值给根节点,如果右孩子不存在,则只需比较左孩子与根节点大小,一直循环操作至a[1],再从a[2]开始进行根结点与孩子结点进 ...
分类:编程语言   时间:2016-12-22 06:36:20    阅读次数:159
分治算法-堆排序
AdjustDown函数是主要的 ...
分类:编程语言   时间:2016-12-19 21:22:35    阅读次数:251
数据结构:堆排序
「仅为草稿,尚未详解」 堆排序(C语言版) 走进堆排序 什么是堆 堆实质就是一颗完全二叉树,其任何一非叶子节点满足下列性质。 i=1,2,3...n/2 说明: 既然是完全二叉树,我们就可以用数组来表示! 堆根据上面的性质又分为: 从中不难发现,大顶堆从上往下依次键值减小,小顶堆从上向下键值增大。 ...
分类:编程语言   时间:2016-12-18 23:09:16    阅读次数:346
排序算法(三)之堆排序
预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于 ...
分类:编程语言   时间:2016-12-18 02:09:08    阅读次数:321
数据结构与算法——堆排序
代码: void HeapSort(int a[], int n){ int Tmp; for (int i = n / 2; i >= 0; i--) PercDown(a, i, n); /*build a heap; we should know that intinially we put ...
分类:编程语言   时间:2016-12-18 01:26:09    阅读次数:270
【Sort】多种排序
这篇文章包含了插入排序,希尔排序,堆排序,归并排序和快速排序,是前几篇文章的集合。 一共包括三个文件 sort.h sort.cpp main.cpp 1.main.cpp 2.sort.h 3.sort.cpp ...
分类:编程语言   时间:2016-12-14 01:47:21    阅读次数:254
【Sort】HeapSort
堆排序,时间复杂度O(N log N),实际使用中慢于使用Sedgewick增量的增量排序。 大致思路: 1.先在数组中建堆,如果是增量排序,则需要建一个大堆 2.每循环一次,把最大的数,也就是nums[0],放入堆尾,同时把nums[0]下滤 ...
分类:其他好文   时间:2016-12-13 23:11:19    阅读次数:231
1851条   上一页 1 ... 78 79 80 81 82 ... 186 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!