摘要: 第八章 线性时间排序8.4 桶排序桶排序的思想就是把区间[0, 1)划分成n个相同大小的子区间,每一个区间称为桶(bucket)。然后,将n个输入数据分布到各个桶中去。因为输入数均匀且独立均匀分布在[0, 1)上,所以一般不会有很多数落在一个桶中的情况。为得到结果,先对各个桶中的数进行排序,然后按次序把各个桶中的元素列出来即可。在桶排序算法中,假设输入的是一个含n个元素的数组A,且每个元素满足0≤A[i]<1。另外,还需要一个辅助数组B[0..n-1]来存放链表(桶),并假设可以用某种机制来维护这些表。BUCKET-SORT(A)1 n ← length[A]2 for i ← 1 to 阅读全文
posted @ 2012-06-06 21:30 止於至善 阅读(1637) 评论(1) 推荐(0) 编辑
摘要: 第八章 线性时间排序8.3 基数排序算法导论上对基数排序的算法描述只有两行。。。 微言大义的说。。。RADIX-SORT(A, d)1 for i ← 1 to d2 do use a stable sort to sort array A on digit iC++代码 1 #include <iostream> 2 3 using namespace std; 4 5 //求数组中数字的最大位数 6 int maxDigit(int* arr,int digit) 7 { 8 int n = 0; 9 int* temp = new int[digit];10 ... 阅读全文
posted @ 2012-06-06 15:13 止於至善 阅读(714) 评论(0) 推荐(0) 编辑