ADD file via upload

master
pfka9ogtp 4 years ago
parent 950341c1b5
commit 8c7e286913

@ -0,0 +1,68 @@
#include<bits/stdc++.h>
using namespace std;
int temp[100];
int bucket[10];
int maxBit(int data[],int n)
{
//<2F><><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><6E>Ԫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ֵ
int maxData = data[0];
for(int i=1;i<n;i++)
{
if(maxData<data[i])
maxData=data[i];
}
//<2F><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>λ<EFBFBD><CEBB><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD>
int d=1; //d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Ȼ<EFBFBD><C8BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64>ʼ<EFBFBD><CABC>Ϊ1
while(maxData>=10) //<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>/10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
{
maxData/=10;
d++;
}
return d;
}
void radixsort(int data[],int n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
int d = maxBit(data,n); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
int i,j,k;
int radix = 1;
for(i=1;i<=d;i++) //<2F><><EFBFBD><EFBFBD>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
for(j=0;j<10;j++) //ÿ<>η<EFBFBD><CEB7><EFBFBD>ǰ<EFBFBD><C7B0>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
{
bucket[j]=0;
}
for(j=0;j<n;j++) //ͳ<><CDB3>ÿ<EFBFBD><C3BF>Ͱ<EFBFBD><CDB0>Ԫ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>
{
k=(data[j]/radix)%10;
bucket[k]++;
}
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>1
for(j = 1; j < 10; j++)
bucket[j] = bucket[j - 1] + bucket[j];
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>2
for(j = n-1; j>=0; j--)
{
k = (data[j] / radix) % 10;
temp[bucket[k] - 1] = data[j];
bucket[k]--;
}
for(j = 0; j < n; j++) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD>data<74><61>
data[j] = temp[j];
radix = radix * 10; //<2F><>λ -<2D><> ʮλ -<2D><><EFBFBD><EFBFBD>λ -<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
int main()
{
int a[4]={2,1,34,4};
radixsort(a,4); //aʮ<61><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>4<EFBFBD><34>Ԫ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>
for(int i=0;i<4;i++)
cout<<temp[i]<<" ";
return 0;
}
Loading…
Cancel
Save