在路上

不是专业,只会通俗

导航

2013年1月18日 #

排序算法_基数排序

摘要: 一、算法描述 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。二、示例 假设原来有一串数值如下所示: 73, 22, 93, 43, 55, 14, 28, 65, 39, 81 首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:01 812 223 73 93 434 145 55 65678 289 39 接下来将这些桶子中的数值重新串接起来,成为以下的数列:81, 22, 73, 93, 43, 14, 55, 65, 28, 39 ... 阅读全文

posted @ 2013-01-18 18:40 OnRoad_ 阅读(299) 评论(0) 推荐(0) 编辑

排序算法_归并排序

摘要: 一、算法描述 将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针达到序列尾将另一序列剩下的所有元素直接复制到合并序列尾二、图示 三、性能描述 数据结构 :数组 最差时间复杂度 :O(nlogn) 最优时间复杂度 :O(n) 平均时间复杂度 :O(nlogn) 最差空间... 阅读全文

posted @ 2013-01-18 17:54 OnRoad_ 阅读(332) 评论(0) 推荐(0) 编辑

排序算法_桶排序(箱排序)

摘要: 一、算法描述假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶)。然后基于某种映射函数 ,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) ,那么该关键字k就作为B[i]中的元素(每个桶B[i]都是一组大小为N/M的序列)。对每个桶B[i]中的所有元素进行比较排序(可以使用快排)。然后依次枚举输出B[0]....B[M]中的全部内容即是一个有序序列。二、图示假如待排序列K= {49、38 、35、 97 、 76、 73 、 27、 49 }。这些数据全部在1—100之间。因此我们定制10个桶,然后确定映射函数f(k)=k/10。则第一个关键 阅读全文

posted @ 2013-01-18 12:15 OnRoad_ 阅读(1552) 评论(0) 推荐(0) 编辑