基数排序
来源:互联网 发布:nginx cc攻击怎么防御 编辑:程序博客网 时间:2024/06/05 01:16
int maxdigit(int arr[],int digit)
{
int *temp =new int[digit];
int m=0;
for(int i=0;i<digit;i++)
temp[i]=arr[i];
for(int i=0;i<digit;i++)
{
int k=1;
while((temp[i]/10)>0)
{
k++;
temp[i]/=10;
}
if(m<k) m=k;
}
delete[] temp;
return m;
}
void radixsort(int *arr,int digit)
{
int M=maxdigit(arr,digit);
int *B=new int[digit];
int *C=new int[10];
int radix=1;
for(int x=1;x<=M;x++)
{
for(int j=0;j<10;j++)
C[j]=0;
for(int i=0;i<digit;i++)
{
int k= (arr[i]/radix)%10;
C[k]++;
}
for(int j=1;j<10;j++)
C[j]=C[j]+C[j-1];
for(int i=digit-1;i>=0;i--)
{
int k= (arr[i]/radix)%10;
B[C[k]-1]=arr[i];
C[k]--;
}
radix*=10;
for(int j=0;j<=digit;j++)
arr[j]=B[j];
}
delete[] B;
delete[] C;
}
int main()
{
int array[]={22, 34, 95, 87, 56, 980, 12, 48,111};
radixsort(array,9);
for(int i=0;i<9;i++)
cout<<array[i]<<endl;
return 0;
}
{
int *temp =new int[digit];
int m=0;
for(int i=0;i<digit;i++)
temp[i]=arr[i];
for(int i=0;i<digit;i++)
{
int k=1;
while((temp[i]/10)>0)
{
k++;
temp[i]/=10;
}
if(m<k) m=k;
}
delete[] temp;
return m;
}
void radixsort(int *arr,int digit)
{
int M=maxdigit(arr,digit);
int *B=new int[digit];
int *C=new int[10];
int radix=1;
for(int x=1;x<=M;x++)
{
for(int j=0;j<10;j++)
C[j]=0;
for(int i=0;i<digit;i++)
{
int k= (arr[i]/radix)%10;
C[k]++;
}
for(int j=1;j<10;j++)
C[j]=C[j]+C[j-1];
for(int i=digit-1;i>=0;i--)
{
int k= (arr[i]/radix)%10;
B[C[k]-1]=arr[i];
C[k]--;
}
radix*=10;
for(int j=0;j<=digit;j++)
arr[j]=B[j];
}
delete[] B;
delete[] C;
}
int main()
{
int array[]={22, 34, 95, 87, 56, 980, 12, 48,111};
radixsort(array,9);
for(int i=0;i<9;i++)
cout<<array[i]<<endl;
return 0;
}
0 0
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 平时问题汇总(持续更新)
- Leetcode: Letter Combinations of a Phone Number
- C# filter 筛选器
- 编译适用于TP-Link WR703N的OpenWRT固件
- undo相关实验
- 基数排序
- SQL SERVER 2008 R2序列号
- Java中的equals()和hashCode()契约
- 关于USACO
- 静态库的编写
- 冒泡排序,排序字符
- 各类文件的文件头 魔数
- zipimport.ZipImportError: bad local file header错误的解决办法
- Linux SSH服务器架构