From 8c7e28691351e292d21d0a3ea71f80bbaffd9d56 Mon Sep 17 00:00:00 2001 From: pfka9ogtp <2376896771@qq.com> Date: Sat, 19 Feb 2022 18:44:58 +0800 Subject: [PATCH] ADD file via upload --- 9.基数排序.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 9.基数排序.c diff --git a/9.基数排序.c b/9.基数排序.c new file mode 100644 index 0000000..86d021b --- /dev/null +++ b/9.基数排序.c @@ -0,0 +1,68 @@ +#include +using namespace std; + +int temp[100]; +int bucket[10]; + +int maxBit(int data[],int n) +{ + //����Щ��������n��Ԫ�ص����ֵ + int maxData = data[0]; + for(int i=1;i=10) //�����ֵ����/10������λ�� + { + maxData/=10; + d++; + } + return d; +} +void radixsort(int data[],int n) //�������� +{ + int d = maxBit(data,n); //������λ�� + int i,j,k; + int radix = 1; + for(i=1;i<=d;i++) //����d������ + { + for(j=0;j<10;j++) //ÿ�η���ǰ��ռ����� + { + bucket[j]=0; + } + for(j=0;j=0; j--) + { + k = (data[j] / radix) % 10; + temp[bucket[k] - 1] = data[j]; + bucket[k]--; + } + for(j = 0; j < n; j++) //����ʱ��������ݸ��Ƶ�data�� + data[j] = temp[j]; + + radix = radix * 10; //��λ -�� ʮλ -����λ -������ + } +} + +int main() +{ + int a[4]={2,1,34,4}; + radixsort(a,4); //aʮ����������� ��4��Ԫ�ظ��� + for(int i=0;i<4;i++) + cout<