function InsertSort($arr){ $num = count($arr);
for($i = 1; $i = 0; $j--){ if($arr[$j] > $key){ $arr[$j + 1...
分类:
Web程序 时间:
2014-06-12 16:51:05
阅读次数:
270
[基本功不好的勿看,有点复杂度]java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例...
分类:
编程语言 时间:
2014-06-11 00:10:36
阅读次数:
339
1.冒泡排序
冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。 2.插入排序
插入排序通过把序列中的值插入一个已经排序好的序列中,直到该序列的结束。 3.shell排序(希尔排序) ...
分类:
其他好文 时间:
2014-06-10 11:41:22
阅读次数:
182
堆排的灵感源自于堆的数据结构。它是一种原地排序算法,不需要额外的临时数组。
基本思想
堆排的基本思想是:
先建立一个最大堆
将最大的元素移动到数组末尾,减小堆的大小,调整最大堆使其符合最大堆的性质
重复第二步,直到最大堆耗尽为止
第一个步骤建立最大堆的代码非常简单,只要对每个节点执行sink操作即可。
...
分类:
其他好文 时间:
2014-06-10 06:55:08
阅读次数:
295
通过阅读 java.util.Arrays,学习Java标准库中操作数组的函数,包括各种排序算法如何对排序进行优化,二分搜索,哈希值计算等等 。...
分类:
其他好文 时间:
2014-06-09 23:26:14
阅读次数:
248
稳定排序和不稳定排序这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为...
分类:
其他好文 时间:
2014-06-08 21:04:01
阅读次数:
213
算法复杂度用来表示在解决某个问题时,算法的性能表现。
复杂度上限,就是某个具体的已经实现的算法能够保证在一定时间内解决问题
复杂度下限,就是通过数学方法证明,所有的算法都必须花费一定的时间才能解决问题
最优化算法,就是可能达到的最小复杂度的算法,通常介于复杂度上限和下限之间
比如排序问题中:
计算模型为决策树
使用比较次数作为开销...
分类:
其他好文 时间:
2014-06-08 18:20:02
阅读次数:
190
排序的应用
排序算法有着广泛的应用。
典型的应用有
对名称进行排序
排序MP3音乐文件
显示Google的搜索结果
按标题顺序列出RSS订阅
排序之后下列问题就变得非常简单了
找出中位数
数据库中的二分查找
找出统计数据中的异常值
在邮箱中找出重复的邮件
不是...
分类:
其他好文 时间:
2014-06-08 14:45:20
阅读次数:
197
排序算法是我们工作中使用最普遍的算法,常见的语言库中基本都会有排序算法的实现,比如c标准库的qsort,stl的sort函数等。本文首先介绍直接插入排序,归并排序,堆排序,快速排序和基数排序等比较排序算法,然后介绍计数排序,基数排序等具有线性时间的排序算法。本文主要讨论算法的实现方法,并不会过多介绍...
分类:
其他好文 时间:
2014-06-07 21:23:31
阅读次数:
348
选择排序 直接选择排序: 选择排序,每一趟找到一个最小(大)值,每一趟遍历的数据减少一次。
template void SelectSort(T a[],int length){ T temp; for (int i=0;i0;i--) {
shift(a,i,n); //n只是起条件判断作用,并不...
分类:
其他好文 时间:
2014-06-07 21:10:36
阅读次数:
210