介绍了 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
昨日写完冒泡排序,和大多数人的感觉一样,太简单,丝毫没有挑战性。但楼主是一个追求踏实平稳的人,希望地基坚固,也为方便后面学习和研究更加高深的算法。但在研究效率上还有待提高,楼主一定好好努力。今天将会写完选择排序 和 插入排序,本文主在选择排序。一. 算法描写叙述 选择排序:比方在一个长度为N的...
分类:
其他好文 时间:
2014-06-18 17:03:35
阅读次数:
190
近几天研究了几个常用算法,插入,选择,合并,用测试程序生成几个大小不一样的输入文件,数量从几千万到上亿。刚开始测试时,把每次排序数只调到1000,生成的测试结果显示,插入排序,选择排序,合并排序依次性能下降。
转头一想,不对呀,这与书上不符。突然一想o(n2),貌似我的n比较小,于是把将每次供排.....
分类:
其他好文 时间:
2014-06-16 00:57:42
阅读次数:
187
Insertion Sort ListSort a linked list using
insertion sort. leetcode
subject思路:标准的插入排序。考察一下链表的操作。对链表进行插入排序的正确方法是:新建一个头节点,遍历原来的链表,对原链表的每个节点找到新链表中适合插入位置...
分类:
其他好文 时间:
2014-06-16 00:34:07
阅读次数:
364
原文地址: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
看到题目的时候,以为类似插入排序,比较第i个元素和第i-1个元素,如果第i个元素比第i-1个元素小,则不交换如果第i个元素比第i-1个元素大,则交换第i个元素和第i-1个元素 继续比较第i-1个元素与前一个元素,直到前一个元素大为止交换元素次大于等于k则停止但对测试用例1234 3则出现问题,如果....
分类:
其他好文 时间:
2014-06-14 21:46:18
阅读次数:
191
位置p上的元素存储于tmp(第一趟p通常取1),而(位置p之前)所有更大的元素都向右移动一个位置。然后tmp被放在正确的位置上。代码:public class InsertionSort { private int q; int[] insertionSort(int[] a) { for (in....
分类:
其他好文 时间:
2014-06-14 20:13:01
阅读次数:
208
一. 算法描述 插入排序具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5 举个例子:5 7.....
分类:
其他好文 时间:
2014-06-14 19:06:15
阅读次数:
236
双向冒泡 1 package com.huang; 2 3 public class
_014_bubb_sort { 4 5 int[] b={1,2}; 6 static int
a[]={12,4,35,65,43,63,2,6,9,544,43543}; 7 pu...
分类:
编程语言 时间:
2014-06-10 21:43:40
阅读次数:
275