void bucketSort(int arr[],int size) { int tempArr[10][SIZE] = {0};//桶 int max,loop,j=0; int bitVal,base=1; max = maxVal(arr,size);//数组中最大数字 while(base < max){//遍历各个数的位数 for(loop =0 ; loop < size; loop++){ bitVal = (arr[loop]/base) % 10;//取数字位数 tempArr[bitVal][j++] = arr[loop]; } cpyToArr(arr,tempArr);//把桶中的数复制回数组 printArr(arr,size-1);//打印数组 base *=10; j=0;//索引归零 } } int cpyToArr(int arr[],int temp[][SIZE]) { int i,j,k=0; for(i =0;i < 10;i++){ for(j=0;j<SIZE;j++){ if(temp[i][j] != 0){ arr[k++] = temp[i][j]; temp[i][j] = 0; } } } } int maxVal(int arr[],int length) { int i,max = arr[0]; for(i=0;i < length;i++){ if(arr[i] > max){ max = arr[i]; } } return max; }