1 #include 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 //karllen 5 //2015 4 18 ...
分类:
编程语言 时间:
2015-04-19 17:25:24
阅读次数:
194
交换排序(冒泡排序,快速排序);插入排序(直接插入排序,希尔排序);选择排序(简单选择排序,堆排序);归并排序;java源码实现常见内排序
分类:
编程语言 时间:
2015-04-18 21:43:27
阅读次数:
193
一面:
1. 快速排序,手写代码。
2. 堆排序,描述过程,纸上画出来。
3. 单例模式:懒汉模式和饿汉模式。
4. 线程池的实现原理,用到的数据结构,如何调度池内资源。
5. 用什么命令查找某个文件名?
6. 用什么命令删除某个文件和下面的所有东西?
7. sql语句:创建一个table。
二面:
8. 给定一个数组,数组中存放着线程的引用,根据该数据结构,设计一个线程池的方案,...
分类:
移动开发 时间:
2015-04-18 17:51:34
阅读次数:
229
堆排序,顾名思义利用堆的性质进行排序。堆都有哪些性质,比如:一堆沙子、一堆泥土二叉堆实际上是一课完全二叉树,同时满足:父结点的键值总是大于或等于(小于或等于)任何一个子结点的键值当父结点的键值总是大于或等于任何一个子结点的键值时称为 最大堆当父结点的键值总是小于或等于任何一个子结点的键值时称为 最小...
分类:
编程语言 时间:
2015-04-18 17:37:59
阅读次数:
145
堆排序
堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。
堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]]
>= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。
维护堆的性质
M...
分类:
其他好文 时间:
2015-04-17 11:37:45
阅读次数:
138
排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的...
分类:
编程语言 时间:
2015-04-16 21:15:41
阅读次数:
124
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
分类:
编程语言 时间:
2015-04-16 13:58:35
阅读次数:
170
准备对能一次读入内存中处理的数据,取前K小,用多种方法进行。设想有:插入排序、折半查找插入排序、链排序、堆排序。顺序查找直接插入:思路:1、对全部数据,依次取值。送到一个队列。2、待判断的数据,在队列中做顺序查找。找到位置则插入。3、当队列满,且待判断的数据大于队列中最大数据,则直接放弃。另,代码中...
分类:
其他好文 时间:
2015-04-15 22:48:56
阅读次数:
161
/* 建议先看堆调整方法,堆调整了解了,整个排序算法就算掌握了 */- (void)viewDidLoad{ [super viewDidLoad]; /* 测试数据 */ NSArray *array=@[@3,@2,@6,@4,@1,@0,@6,...
分类:
编程语言 时间:
2015-04-15 21:18:21
阅读次数:
157
堆排序 1 // 将待排序的最后一个元素current插入大根堆中 2 void insert_heap(int *arr, int current, int low, int high) 3 { 4 //记录low的孩子结点中较大元素的下标,初始化为左孩子 5 int large ...
分类:
编程语言 时间:
2015-04-14 16:23:24
阅读次数:
181