1.归并排序 时间复杂度 平均情况与最坏情况为 O(nlog(n)) public class MergeSort { //将一个数组中的两个有序区间[p,q]和(q,r]合成为一个有序区间[p,r] //没有返回值也可,因为数组传的是引用 public int[] merge(int a[],in ...
分类:
编程语言 时间:
2016-07-12 17:08:49
阅读次数:
230
2.1插入排序 扑克牌这个栗子不错。以后得多用扑克牌来形象化思考排序问题。 根据伪代码用java实现插入排序 循环不变式。。。。。。。 2.2分析算法 RAM模型,输入规模,运行时间(假定第i行的每次执行需要时间Ci), 最坏情况与平均情况分析,增长量级 2.3设计算法 分治法 归并排序 Merge ...
分类:
编程语言 时间:
2016-07-10 13:59:18
阅读次数:
192
线性时间排序 各种排序算法总结已经介绍了几种能在O(n*log(n))时间内培训n个数的算法。归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。这些算法都有一个有趣的性质:在排序的最终结果中,各元素的次序依赖于它们之间的比较。这类算法为比较算法,还有一类算法是线性时间复杂度的排 ...
分类:
编程语言 时间:
2016-06-21 09:16:48
阅读次数:
183
各种排序算法总结已经介绍了几种能在O(n*log(n))时间内培训n个数的算法。归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。这些算法都有一个有趣的性质:在排序的最终结果中,各元素的次序依赖于它们之间的比较。这类算法为比较算法,还有一类算法是线性时间复杂度的排序算法,有计数 ...
分类:
编程语言 时间:
2016-06-19 15:33:42
阅读次数:
181
九大基础排序算法小结
一直想做份总结,总是抽不出时间,趁着周末闲着直接用了一整天做一份,一些内容参考了网上的一些博主的总结,还有网络上的一些图片。
好了,接下来就看看内容吧!
排序算法:
排序方法
时间复杂度
空间复杂度
稳定性
选用情况
平均情况
最坏情况
最好情况
...
分类:
编程语言 时间:
2016-05-21 17:43:59
阅读次数:
250
JAVA当中有以下几种常见排序算法:插入排序(直接插入排序、链表插入排序、分段/二分/折半插入排序、希尔排序/缩小增量排序)、冒泡排序、快速排序、简单选择排序、归并排序、二叉树排序、基数排序等。
(1)复杂度比较
表1 几种常见排序算法的复杂度
算法名称
平均情况
最好情况
最坏情况
辅助空间
直接...
分类:
编程语言 时间:
2016-05-18 19:48:41
阅读次数:
240
排序在各次面试的过程中问道的次数不少,冒泡排序和快速排序尤多。因此做一些总结,尤其是代码部分。
1. 冒泡排序
(1)思想
在一组数中,对当前未排好序的数,自上而下地对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的数往上冒。
(2)复杂度
平均情况-O(n^2)
最坏情况-O(n^2)(逆序有序)
最好情况-O(n)(正序有序)
空间复杂度-O(1)
(3)稳定...
分类:
编程语言 时间:
2016-05-13 01:14:13
阅读次数:
275
* 为了实现N个数的排序,将后面N-1个数依次插入到前面已排好的子序列中, *假定刚开始第1个数是一个已排好序的子序列。经过N-1趟就能得到一个有序序列。 *****时间复杂度:最好情况O(n),最坏情况O(n^2),平均情况O(n^2). *****空间复杂度:O(1) *****稳定性:稳定 # ...
分类:
编程语言 时间:
2016-05-07 06:32:01
阅读次数:
235
本文由@呆代待殆原创,转载请注明出处。 简介:这个排序算法不属于比较排序,在平均情况下他的时间代价是O(n),并且它假设它的输入数据均匀的分布在一个固定的区间里。 思路:桶排序假设他的输入均匀的分布在一个固定的区间,并且它将这个区间划分成均匀的子区间,每个子区间称为一个桶,然后将输入的数据分别放到对 ...
分类:
编程语言 时间:
2016-04-25 14:31:08
阅读次数:
180
排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定插入排序 O(n^2) O(n) O(n^2) O(1) 稳定希尔排序O(n*log(n))~O(n^2) O(n ...
分类:
编程语言 时间:
2016-04-17 14:47:38
阅读次数:
316