最近在找工作面试的时候总是会被问到排序算法的种种,现在对排序算法进行一个系统的总结。也算是再复习一遍的,有好多自己也忘得差不多了。排序有内部排序和外部排序两大类。内部排序值得是所有的排序是在内存中进行;外部排序则是因为数据量太大,一次不能将全部数据放在内存..
分类:
编程语言 时间:
2015-10-12 19:23:22
阅读次数:
235
这一章节主要总结线性表顺序存储结构的优缺点。在总结之前,我们来讨论一下线性表顺序存储结构的执行方法的时间复杂度:存储、读取:O(1)插入、删除:O(n)优点:1.无需为表中的逻辑关系增加额外的存储空间2.可以快速存取表中对象缺点:1.插入和删除需要移动大量的对象2.存储设备的碎片化3.当线性表过大的时候,很难确定长度...
分类:
编程语言 时间:
2015-10-12 17:28:09
阅读次数:
153
Bellman_ford:复杂度:O(VE) 边数用途:一条路,钱币的互换,寻找最小正权环,即一圈后能回到自己并且比自己大或者小,如果是大,d数组就开0,否则开inf适用条件:从源点到它的所有节点,适用于稀疏图(顶点多,边数少)原理:利用该顶点判断操作之后与操作之前的比较步骤:1.开一个d数组,以d...
分类:
编程语言 时间:
2015-10-10 21:33:21
阅读次数:
174
1、数组去重方法1:JavaScript//利用数组的indexOf方法function unique (arr) { var result = []; for (var i = 0; i < arr.length; i++) { if (result.indexOf(arr[i]) ...
分类:
编程语言 时间:
2015-10-09 21:16:09
阅读次数:
305
1 高速分拣(QuickSort)高速的排序是一个地方排序,分而治之。海量递归算法。从本质上讲,合并排序地方是版本号。的以下四个步骤的高速排序可以由。(1)不多于1个数据。直接返回。(2)一般选择序列最左边的值作为支点数据。(3)将序列分成2部分。一部分都大于支点数据,另外一部分都小于支点数据。(4...
分类:
编程语言 时间:
2015-10-09 21:14:12
阅读次数:
174
LDA也称Fisher线性判别法,它是一种非迭代的分类算法。算法的主要思想将特征空间中的样本投影到该空间的一条直线上以实现从高维到一维的数据压缩。显然这样的投影有很多方向,而LDA算法就是寻找一个最佳投影方向来使样本的类内距离最小而类间距离最大。投影方向:1、投影后不同..
分类:
编程语言 时间:
2015-09-29 01:25:06
阅读次数:
289
前段时间,关于路网最优路径算法的专题我做了一次内部分享,感兴趣的朋友可以进行查看与下载, 链接如下: http://files.cnblogs.com/files/gisorange/%E8%B7%AF%E7%BD%91%E6%9C%80%E4%BC%98%E8%B7%AF%E5%BE%84...
分类:
编程语言 时间:
2015-09-27 19:59:17
阅读次数:
128
排序时间列表: 名称 复杂度 说明 备注 冒泡排序 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