计数排序原理 计数排序的基本思想是:对于每一个输入元素x,确定小于x的元素个数。根据这些信息,就能准确的将每个数字放在正确的位置上。 在排序的过程中,除了输入数组A[n]之外,还需要一个记录结果的数组B[n]和一个记录小于x数的个数数组C[num_max]。A与B的数组等长,而C数组的长度则为n个数中的最大者。 上图为计数排序的一系列过程,下面依次做分析:
(a)中显示了原始数组A...
分类:
编程语言 时间:
2015-06-27 11:42:38
阅读次数:
123
在此对于桶排序做出两种方法:
一.简化版桶排序
代码如下:
/*简化版的桶排序*/
#include
int main()
{
int book[1001],i,j,t,n;
for(i=0;i<=1000;i++)
{
book[i]=0;
}
scanf("%d",&n);//输入一个数n,表示接下来有n个数
for(i=1;i<=n;i++)//循环读入n个数,并进...
分类:
编程语言 时间:
2015-06-26 09:16:59
阅读次数:
130
序列(两)以上排序算法都有一个性质:在排序的终于结果中,各元素的次序依赖于它们之间的比較。我们把这类排序算法称为比較排序。不论什么比較排序的时间复杂度的下界是nlgn。下面排序算法是用运算而不是比較来确定排序顺序的。因此下界nlgn对它们是不适用的。键索引计数法(计数排序)计数排序如果n个输入元素中...
分类:
编程语言 时间:
2015-06-25 15:19:25
阅读次数:
252
DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so careless and alway forget to carry a number when the su...
分类:
编程语言 时间:
2015-05-30 22:36:37
阅读次数:
204
这个之前在《编程珠玑》上面看到过,当时就感觉特别神奇!
速度突破了其他排序算法的下限
后来在《算法导论》上面又看到了,感触颇深!所以一定好好啃透《算法导论》
这一系列博客的特点就是——给出每趟排序的结果
本来想着好好写一下过程,弄个图片什么的,不过觉得网上的解析太多了,都比较好,所以这些博客就算是对自己的总结吧。
#include ...
分类:
编程语言 时间:
2015-05-26 14:23:25
阅读次数:
130
任意一种比较排序算法,在最坏情况下的运行时间下限是Ω(nlgn)计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,k为某个整数,当k=O(n)时,计数排序的运行时间为Θ(n) 1 //输入数组A[1..n],存放排序结果数组B[1..n],临时存储区C[0..k] 2 COUNTING-S...
分类:
编程语言 时间:
2015-05-24 17:18:52
阅读次数:
135
今天下午刚学完计数排序,故趁热打铁写下来吧。
#include
using namespace std;
int main()
{
int a[10000], k, n, max; // 数组a为输入的数组
int c[10000], b[10000]; // 数组b存放排序的输出。 数组c提供临时存储空间
cin >> n;
for (int i=1; ...
分类:
编程语言 时间:
2015-05-23 18:25:27
阅读次数:
134
比较排序的极限是O(nlgn)而计数排序非比较排序 他的复杂度只有O(n)基本思想是: 1、统计a数组中每个数字出现的次数放在临时数组c中,c的大小为a中最大的数 2、在第一步统计的基础上遍历一遍统计小于等于i的数出现的次数即c[i]+=c[i-1] 3、通过数组c确定a[i]的位置,放在结果...
分类:
编程语言 时间:
2015-05-20 20:17:57
阅读次数:
127
在之前写过的插入排序,归并排序,堆排序,快排都是比较排序,它们个个元素之间的次序依赖于他们之间的比。
计数排序不是一个比较排序的算法,它的所有代码完全没有在输入元素之间的比较。计数排序的基本思想是:对没一个输入元素x,确定小于x的元素个数。用这个信息,就可以把x放到它输出数组上的位置。
#include
#include
using namespace std;
void countsort(...
分类:
编程语言 时间:
2015-05-19 22:50:20
阅读次数:
166
详细讲解见《算法导论》8.2节——计数排序。
Java代码如下:
package linetimesort;
/**
* 计数排序假设n个输入元素中的每一个都是介于0到k之间的某个整数,k为某个整数;它
* 通过确定小于等于一个数的数的个数来确定这个数应该放在哪个位置
* @author yuncong
*
*/...
分类:
编程语言 时间:
2015-05-19 22:49:45
阅读次数:
176