介绍了 JDK7 中引入的新的排序算法 TimSort,它来自 Python 中 list 的排序算法。将归并排序(merge sort) 与插入排序(insertion sort) 结合,并进行了一些优化。对于已经部分排序的数组,时间复杂度远低于 O(n log(n)),最好可达 O(n),对于随机排序的数组,时间复杂度为 O(nlog(n)),平均时间复杂度 O(nlog(n))。...
分类:
其他好文 时间:
2014-06-19 12:33:58
阅读次数:
575
Insertion Sort ListSort a linked list using
insertion sort. leetcode
subject思路:标准的插入排序。考察一下链表的操作。对链表进行插入排序的正确方法是:新建一个头节点,遍历原来的链表,对原链表的每个节点找到新链表中适合插入位置...
分类:
其他好文 时间:
2014-06-16 00:34:07
阅读次数:
364
1 2
--------------------对象用Counter-------------------------------------------------------------
3 4 dc={"james":4,"kim":3,"marry":5,"bill":6} 5 ...
分类:
其他好文 时间:
2014-06-16 00:32:05
阅读次数:
216
原文地址:http://my.oschina.net/u/158457/blog/28536排序的方法很特别,有点类似插入排序的味道先看下代码
1 public class Sort { 2 private static boolean[] temp = new boolean[10000]...
分类:
其他好文 时间:
2014-06-16 00:09:10
阅读次数:
211
排个序,求前k个元素和即可 int minimum(int K, vector danceCost) { sort(danceCost.begin(),danceCost.end()); return accumulate(danceCost.begin()...
分类:
其他好文 时间:
2014-06-15 21:53:14
阅读次数:
201
从大到小遍历一遍,每次取M个元素,然后求得最小的floor即可 int minimum(int M, vector heights) { sort(heights.begin(),heights.end()); int minFloor = 10000; ...
分类:
其他好文 时间:
2014-06-15 21:48:45
阅读次数:
229
交换排序:两两比较待排序记录的关键码,若是逆置,则交换,直到无逆置。其中最简单的交换排序是:冒泡排序。
冒泡排序(Bubble Sort,也叫起泡排序):不断地比较相邻的记录,若是不满足排序要求,则交换。
交换时,可从前向后,也可从后向前。看一个从前向后的排序过程:...
分类:
其他好文 时间:
2014-06-15 08:59:39
阅读次数:
280
JS数组去重var ddd = [1,2,4,5,2, 222,1,5,6];var uq = {};var rq = [];for(var i=0; ib?1:-1});//从小到大排序 alert(arrDemo);//10,50,51,100 arrDemo.sort(function(a,b...
分类:
Web程序 时间:
2014-06-15 06:28:54
阅读次数:
286
写了好久,终于写成了.第一次zai leecode错题,题目质量很高,适合面试,与 1.归并排序是稳定的,在java中 Arrays.sort(a);中对于对象的排序就是归并排序。对于原子类型数据使用的是快排。 2.算法复杂度,我们都知道归并排序的最好最坏最差复杂度为nlogn,空间复杂度为n,在链...
分类:
编程语言 时间:
2014-06-15 00:02:45
阅读次数:
402