早教吧作业答案频道 -->其他-->
区间排序算法的实现,代码C++,排序算法的问题假设含假设含n个数据元素的序列中,所有关键字为介于个数据元素的序列中,所有关键字为介于u和w之间的整数,且其中很多关键字值是相同.则
题目详情
区间排序算法的实现,代码C++,排序算法的问题
假设含 假设含 n个数据元素的序列中,所有关键字为介于 个数据元素的序列中,所有关键字为介于 u和 w之间的整数,且其 中很多关键字值是相同.则可按如下方法进行排序:设数组 number[0..w-u]且令 number[i] 统计关 键字 等于 整数 u+i的数据元素个数,然后按 number [ ]的值重排序列以达到有序.
假设含 假设含 n个数据元素的序列中,所有关键字为介于 个数据元素的序列中,所有关键字为介于 u和 w之间的整数,且其 中很多关键字值是相同.则可按如下方法进行排序:设数组 number[0..w-u]且令 number[i] 统计关 键字 等于 整数 u+i的数据元素个数,然后按 number [ ]的值重排序列以达到有序.
▼优质解答
答案和解析
{
int u,w;
u= min in Input;
w= max in Input;
int *bucket=new int[w-u+1];
for(int i=0;i bucket[i]=0;
for(int i=0;i bucket[Input[i]-u]++;
// print result;
for(int i=0;i while(bucket[i])
{
cout< bucket[i]--;
}
这不就类似于桶排序么,只不过桶的大小为序列的最大值减去最小值+1而已.
伪代码如下:
void bucketsort(int * Input,int len){
int u,w;
u= min in Input;
w= max in Input;
int *bucket=new int[w-u+1];
for(int i=0;i
for(int i=0;i
// print result;
for(int i=0;i
{
cout<
}
看了区间排序算法的实现,代码C++...的网友还看了以下:
数据库中实现数据的检索和更新是由数据库管理系统中()实现的。A.数据操纵语言B.数据定义语言C.数 2020-05-24 …
某雌(XX)雄(XY)异株植物,其叶形有阔叶和窄叶两种类型,由一对等位基因控制.现有三组杂交实验, 2020-06-26 …
matlab用多项式函数拟合曲线,且使这个函数要过一定点(x0,y0)matlab用多项式函数拟合 2020-07-24 …
excel条件问题假设有ABC三列我在A1中有某数值(如B列的平均数),B列为一组手动输入的原始数 2020-07-25 …
在Word2003中,有关数学公式的下列说法正确的是()数学公式也是一种对象插入数学公式可以通过“ 2020-07-26 …
作文。在你的人生经历中有无数的第一次,也有着无数的第二次。第二次也许是第一次的重复,但可能有全新的发 2020-11-02 …
现实中有些数目是不能直接数出或不可能数全,这就可以通过试验估计什么里的数目,来估计总体数目 2020-11-03 …
(1)3^1=33^2=93^3=273^4=813^5=2433^6=729,用你发现的规律求出3 2020-11-21 …
怎么样改变EX表格一列当中的不同数字假如一列数当中有负数或0,我想只改变其它数字的运算(正数),并且 2020-11-29 …
数学家们很善于从日常生活中发现数学问题.比如,有一次苏格兰数学家莱格福德看他孩子玩彩色板.孩子从玩具 2020-12-16 …