插入排序(Insert Sort)for j = 2 to A.length key = A[j] // Insert A[j] into the sorted sequence A[1...j-1] i = j - 1; while i>0 and A[i] > key //u...
分类:
编程语言 时间:
2015-11-01 01:41:44
阅读次数:
228
1插入类排序(1)直接插入排序 算法大致流程:给定初始序列L,L从前往后依次取出一个数据,将其直接插入到有序序列中。 算法的复杂度分析:时间复杂度:最坏的情况下,每从无序序列中取一个元素,就要遍历一遍有序序列,复杂度为O(n2);最好的情况下,每从无序序列中取出一个元素,直接放在了有序序列的后面.....
分类:
编程语言 时间:
2015-10-31 13:03:01
阅读次数:
320
基于比较的排序算法,应该是最符合人们直觉的方法。在各种算法的技术书上,已经证明了基于比较的排序算法的时间最优复杂度为O(nlogn)。 下面是几种常见的基于比较的排序算法: 1. 选择排序:这应该是最直观的排序方法。在排序n个元素时,第一次遍历,找到最小的元素,将其与第一个元素互换;第二次遍历,找....
分类:
编程语言 时间:
2015-10-15 23:33:50
阅读次数:
227
最近在找工作面试的时候总是会被问到排序算法的种种,现在对排序算法进行一个系统的总结。也算是再复习一遍的,有好多自己也忘得差不多了。排序有内部排序和外部排序两大类。内部排序值得是所有的排序是在内存中进行;外部排序则是因为数据量太大,一次不能将全部数据放在内存..
分类:
编程语言 时间:
2015-10-12 19:23:22
阅读次数:
235
1 高速分拣(QuickSort)高速的排序是一个地方排序,分而治之。海量递归算法。从本质上讲,合并排序地方是版本号。的以下四个步骤的高速排序可以由。(1)不多于1个数据。直接返回。(2)一般选择序列最左边的值作为支点数据。(3)将序列分成2部分。一部分都大于支点数据,另外一部分都小于支点数据。(4...
分类:
编程语言 时间:
2015-10-09 21:14:12
阅读次数:
174
排序时间列表: 名称 复杂度 说明 备注 冒泡排序 Bubble?Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 ? 插入排序 Insertion?sort O(N*N) 逐一取出元素,在已经排序的...
分类:
编程语言 时间:
2015-09-22 19:17:47
阅读次数:
177
稳定排序:*泡沫排序(bubble sort)— O(n²)*插入排序 (insertion sort)— O(n²)*桶排序 (bucket sort)— O(n);需要O(k)额外空间*计数排序(counting sort) — O(n+k);需要O(n+k)额外空间*合并排序 (merge s...
分类:
编程语言 时间:
2015-09-22 14:21:28
阅读次数:
280
总结下学过的排序算法,方便以后用到。1.插入排序——将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。void insertSort(int a[],int len){ for(int i = 1;i 0 && x 0;i --) for(int...
分类:
编程语言 时间:
2015-09-21 06:57:39
阅读次数:
197
排序算法 平均复杂度 冒泡排序 O(n2) 选择排序 O(n2) 插入排序 O(n2) 希尔排序 O(n1.5) 快速排序 O(N*logN) 归并排序 O(N*logN) 堆排序 O(N*logN) 基数排序 O(d(n+r)) 一. 冒泡排序(BubbleSort) 基本思想:两个数...
分类:
编程语言 时间:
2015-09-17 23:29:50
阅读次数:
834
HashMap是我们在日常写代码时最常用到的一个数据结构,它为我们提供key-value形式的数据存储。同时,它的查询,插入效率都非常高。在之前的排序算法总结里面里,我大致学习了HashMap的实现原理,并制作了一个简化版本的HashMap。 今天,趁着项目的间歇期,我又仔细阅读了Java中的Has...
分类:
编程语言 时间:
2015-09-17 23:15:15
阅读次数:
282