WEB开发网
开发学院软件开发C语言 C#实现所有经典排序算法汇总 阅读

C#实现所有经典排序算法汇总

 2009-05-06 08:27:04 来源:WEB开发网   
核心提示: 注:此算法由周利华提供(http://www.cnblogs.com/architect/archive/2009/05/06/1450489.html )7、基数排序基数排序 //基数排序 public int[] RadixSort(int[] ArrayToSort, int dig

注:此算法由周利华提供(http://www.cnblogs.com/architect/archive/2009/05/06/1450489.html

7、基数排序

基数排序
        //基数排序
        public int[] RadixSort(int[] ArrayToSort, int digit)
        {  
            //low to high digit
            for (int k = 1; k <= digit; k++)
            {      
                //temp array to store the sort result inside digit
                int[] tmpArray = new int[ArrayToSort.Length];
                //temp array for countingsort
                int[] tmpCountingSortArray = new int[10]{0,0,0,0,0,0,0,0,0,0};       
                //CountingSort       
                for (int i = 0; i < ArrayToSort.Length; i++)       
                {          
                    //split the specified digit from the element
                    int tmpSplitDigit = ArrayToSort[i]/(int)Math.Pow(10,k-1) - (ArrayToSort[i]/(int)Math.Pow(10,k))*10;
                    tmpCountingSortArray[tmpSplitDigit] += 1;
                }        
                for (int m = 1; m < 10; m++)     
                {           
                    tmpCountingSortArray[m] += tmpCountingSortArray[m - 1];       
                }       
                //output the value to result     
                for (int n = ArrayToSort.Length - 1; n >= 0; n--)      
                {          
                    int tmpSplitDigit = ArrayToSort[n] / (int)Math.Pow(10,k - 1) - (ArrayToSort[n]/(int)Math.Pow(10,k)) * 10;          
                    tmpArray[tmpCountingSortArray[tmpSplitDigit]-1] = ArrayToSort[n];           
                    tmpCountingSortArray[tmpSplitDigit] -= 1;      
                }       
                //copy the digit-inside sort result to source array      
                for (int p = 0; p < ArrayToSort.Length; p++)      
                {          
                    ArrayToSort[p] = tmpArray[p];      
                }  
            }   
            return ArrayToSort;
        }

上一页  1 2 3 4 5 6 7  下一页

Tags:实现 所有 经典

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接