首页 > 其他 > 详细

C 桶排序

时间:2014-03-15 21:32:36      阅读:625      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
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;
}
bubuko.com,布布扣

C 桶排序,布布扣,bubuko.com

C 桶排序

原文:http://www.cnblogs.com/ShowJoy/p/3602210.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!