阿里面试中有一道题是这样的: 请用JavaScript语言实现sort排序函数,要求:sort([5,100,6,3,-12])//返回[-12,3,5,6,100],如果你有多种解法,请阐述各种解法的思路及优缺点。(仅需用代码实现一种解法,其它解法用文字阐述思路即可)...
分类:
编程语言 时间:
2015-04-23 19:17:20
阅读次数:
262
/* ***********完完整整的用堆排序来对一个序列进行排序 ************ * */import java.util.Random;public class HeapSort { public static void main(String args[]){ i...
分类:
编程语言 时间:
2015-04-23 17:20:39
阅读次数:
130
排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。即:如,如果A i == A j,Ai 原来在 Aj 位置前,排序后 Ai仍然是在 Aj 位置前。1、简单总结 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法 .....
分类:
编程语言 时间:
2015-04-21 16:03:55
阅读次数:
126
堆排算是排序算法中比较难的一个算法,在实现编码之前首先要对堆排的思想有一个清晰的思路,下面我们就来分析一下堆排序。
1.首先要明白堆排序第一步要有堆,也就是完全二叉树,那么问题来了,如何创建一个完全二叉树呢?完全二叉树是需要按层来创建的,如果你曾经编写过按层遍历二叉树这块会很好理解,按层的话要记录上一个结点,所以要用到 队列,创建的节点依次入队。
2.创建好完全二叉树,堆排...
分类:
编程语言 时间:
2015-04-21 09:56:25
阅读次数:
165
图例参考http://www.cnblogs.com/mengdd/archive/2012/11/30/2796845.html原文参考http://blog.csdn.net/eseaqyq/article/details/7497575//以下是针对堆进行调整void HeapAjust(in...
分类:
编程语言 时间:
2015-04-20 22:11:16
阅读次数:
144
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