package data;public class Sort { String endline = System.getProperty("line.separator"); //选择排序 public void selectSort(int[] arr){ int len = arr.leng.....
分类:
其他好文 时间:
2014-08-10 15:23:50
阅读次数:
209
1.冒泡排序和选择排序为什么把冒泡排序和选择排序放在一块儿呢?因为我发现他们两个有点像。冒泡排序是不停的把最大的元素换到数组的最右端。而选择排序是把最小的元素换到最左端。看到这儿,你是不是觉得冒泡和选择好像没啥区别啊,把最大换成最小就成了一种新的算法?那我也来一个?其实,无论换最大还是最小,都无关紧...
分类:
其他好文 时间:
2014-08-09 18:24:28
阅读次数:
219
比较相邻的元素,如果第一个比第二个大,就交换他们两个,对每一对相邻的元素作同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该会是最大的数,针对所有的元素重复以上的步骤,除了最后一个,持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较(从头到尾对相邻的元素进行比较,符合...
分类:
其他好文 时间:
2014-08-09 18:21:48
阅读次数:
172
1、2、研究排序算法的稳定性有何意义? 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。再简单具体一点,如果Ai == A j,Ai原来在Aj 位置前,排序后Ai仍然是在Aj位置前。下面我们分析一下稳定性的好处:....
分类:
其他好文 时间:
2014-08-09 13:21:07
阅读次数:
214
归并排序法是一个基于分治法的比较排序方法,其最差情况复杂度为O(nlogn),而快速排序法的复杂度在最差情况下达到O(n2)本文使用PHP来讨论其算法过程:假设对乱序数列进行排序 $input = array(11,5,1,4,8,7,9,2);思路可以表示:(图是PPT画的,比较简单,请看官见谅)...
分类:
其他好文 时间:
2014-08-09 11:20:37
阅读次数:
398
桶排序的基本思想
桶排序利用函数的映射关系,将待排序的数组分成了N个块(桶)。实际上,桶排序的f(k)值的计算,其作用就相当于快排中划分,已经把大量数据分割成了基本有序的数据块(桶)。然后只需要对每个桶中的少量数据做比较排序(比较排序:即在比较的基础上进行交换,达到排序效果)即可。
假如待排序列K= {49、 38 、 35、 97 、 76、 73 、 27、 49 }。这些数据全部在1—1...
分类:
其他好文 时间:
2014-08-09 00:19:17
阅读次数:
267
计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。计数排序的基本思想就是对于每一个输入元素x,确定出小于x的元素个数。有了这一信息就可以把x直接放到它在最终输出数组中的位置上。例如,如果有17个元素小于x...
分类:
其他好文 时间:
2014-08-08 17:37:56
阅读次数:
190
基本思想:
统计数组data,小于data[i]的个数为N,则把data[i]放在第N+1个位置上面。
实用范围:
所有数都在[0,max]范围内,max为数组的最大值,适用于max不是很大的情况。
对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示:
C++代码:
#include
using namespace...
分类:
其他好文 时间:
2014-08-08 16:09:56
阅读次数:
202
数据结构精要------直接插入排序和希尔排序算法...
分类:
其他好文 时间:
2014-08-07 23:19:45
阅读次数:
278
排序算法是非常常见的面试笔试问题,考查的一个人的基本功,本文将一些排序做了C++的实现,就当是做个学习总结吧。1、快速排序 快速排序的中心是填坑法,取一个数(这里选取第一个数)作为基准数temp,从队尾开始寻找第一个比基准数小的数a[j],交换a[j]和temp,然后队首开始查找第一个比temp大....
分类:
编程语言 时间:
2014-08-07 03:00:18
阅读次数:
245