#include #include int n; /* * 生成堆 */ void HeapAdjust(int *array, int s, int m) { int i; array[0] = array[s]; for (i = s * 2; i 0; i--) { HeapAdjust(ar... ...
分类:
编程语言 时间:
2019-05-24 20:54:13
阅读次数:
119
1 二分查找: 快速排序:参考 https://www.cnblogs.com/coderising/p/5708801.html 堆排序:https://www.cnblogs.com/chengxiao/p/6129630.html 归并排序:https://www.cnblogs.com/ch ...
分类:
编程语言 时间:
2019-05-18 15:48:14
阅读次数:
140
最后结果为: 12123123232623排序前的数据为 :12 123 12323 26 23push_up 第1次 :12 123 12323 26 23push_up 第2次 :123 12 12323 26 23push_up 第3次 :12323 12 123 26 23push_up 第 ...
分类:
编程语言 时间:
2019-05-13 20:18:17
阅读次数:
137
这里从个人角度,总结下python常用算法,不罗嗦,直接看代码(文字解释及推到过程网上有很多,大家可以通过度娘了解) 以下排名仅从写代码人自己习惯的顺序! NO.1 二分查找 NO.2 冒泡 NO.3 快排 NO.4 插入排序 NO.5 选择排序 NO.6 堆排序 ...
分类:
编程语言 时间:
2019-05-11 16:18:58
阅读次数:
124
代码如下 include using namespace std; define max_len 1000 void heapify( int tree [] , int n , int i ){ if( i = n )return ; int c1 = 2 i + 1 ; int c2 = 2 i ...
分类:
编程语言 时间:
2019-05-11 09:26:21
阅读次数:
114
堆排序很重要,但是更重要的是堆这个结构 堆结构:实际上是一棵完全二叉树 一个数组可以根据父结点、左子结点、右子结点的关系,脑补出一棵完全二叉树 算法1:一个数组变为大顶堆 heapInsert() 数组:2、1、3、6、0、4 (1)只有2的时候 (2) 2、1【认为完全二叉树的范围是0~1的,超过... ...
分类:
编程语言 时间:
2019-05-07 22:56:46
阅读次数:
174
接上文:【排序算法】03堆排序 向工具类ArraySorterUtils中添加快速排序的实现,代码如下: 测试代码如下: ...
分类:
编程语言 时间:
2019-05-06 09:13:48
阅读次数:
129
排序: 1、排序在计算机数据处理中经常遇到,在日常的数据处理中,一般可以认为有 1/4 的时间用在排序上,而对于程序安装, 多达 50% 的时间花费在对表的排序上。简而言之,排序是将一组杂乱无章的数据按一定的规律顺次排列起来 2、内排与外排:根据排序方法在排序过程中数据元素是否完全在内存而划分,若一 ...
分类:
编程语言 时间:
2019-05-03 00:51:25
阅读次数:
195
题目 题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 解析 思路1 这一题应用堆排序算法复杂度只有O(nlog k),堆是完全二叉树的一种,最大堆就是最上面的数是最大的该方法基于二叉树或者堆来实现,首先把数组前k个数字 ...
分类:
编程语言 时间:
2019-05-02 17:09:01
阅读次数:
169
SGI STL sort源码 其中_lg()用来控制分割恶化的情况,分割的层数小于log2(last-first)*2,使用快排,大于时,使用堆排序 ...
分类:
其他好文 时间:
2019-04-28 17:18:04
阅读次数:
142