
排序和算法
qq117361093
我很懒。。。
展开
-
归并排序
归并排序也是用到递归的一种排序方式,他比简单排序效率要快很多,冒泡,选择,插入等要O(n*n)的时间复杂度,而归并只需要O(N*logN)的时间。他也比较好实现,但是有个缺点就是需要用到是原数组双倍的空间,因为他要在内存中有另外一个和原数组一样大的数组来做中间数组。 归并数组的特点是用空间换时间 归并算法的核心是合并两个有序的数组,先从两个元素开始合并成一个有序数组,然后是两个容量...原创 2012-04-20 19:59:22 · 85 阅读 · 0 评论 -
高级排序之希尔排序
希尔排序是1959年某个叫希尔的数学大大发明的,它其实就是在插入排序的基础上做了一些优化,但是效率却不知道提高了多少倍,我估计几万倍应该有吧(纯属个人瞎蒙)。插入排序是一个一个来插,而希尔排序则是有一个间隔,比如在容量为10的数组里将索引为1和3和5,7插入排序, 2和5,8插入排序。在这其中有一个增量的概念,可别以为这个增量是随便取的,如果取的不科学,可是效率也会大大的下降哦。最科学的取法就是 ...原创 2012-04-20 20:19:45 · 88 阅读 · 0 评论 -
高级排序之快速排序
这一个算是一个比较完善的快速排序了吧,就是代码多了点,没办法,要想性能好,考虑的东西就得多点。package sort;public class QuickSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method...原创 2012-04-20 20:39:12 · 92 阅读 · 0 评论 -
优化的冒泡排序
static int [] arr = new int []{ 4, 2, 3, 6,99, 5 ,56,23,41}; public static void main(String[] args) { show(order1()); } public static int[] order1(){ int count = 0; boolean a ...原创 2015-08-12 10:04:08 · 105 阅读 · 0 评论 -
java 插入排序
public static int[] insertSort(){ int temp = 0; for (int i = 1,j=0; i < arr.length; i++) { temp = arr[i]; j = i-1; for(;j >=0 && temp < arr[j];j--){ arr[j+1] ...原创 2015-08-12 11:41:55 · 94 阅读 · 0 评论