【排序(C++实现)】:基数排序 |
您所在的位置:网站首页 › 字符串排序c++实现 › 【排序(C++实现)】:基数排序 |
目录
基本思想 C++实现 时间复杂度 基本思想从低位开始,对所有数字进行排序。例如第1轮排序后,数字的个位数要有序;第2轮排序后,数字的十位数要有序,如果十位数相同的数,个位数要按照之前的相对顺序摆放;依次类推直至最高位排序完成。过程如下图: 在对每位进行排序时,选择的排序算法一定要是稳定的排序。在实际应用中,对于日期的排序就可以用基数排序。 C++实现 /*算法:基数排序*/ #include using namespace std; /********************************************************* Function:rxsort Description:基数排序 Input: 数组A[l,h]; 数组中最大元素的位数d,例如最大数为999,则d为3; 进制数k,如果是10进制数,k为10; Output:排序好的数组; Others:对数字1234来说,预定第0位为4,第1位为3,依次类推; *********************************************************/ bool rxsort(int A[],int l,int h,int d,int k){ if(NULL==A||l>h) return false; int size = h-l+1; int* counts = new int[k];//用于计数排序的辅助数据,详见计数排序 int* temp = new int[size];//用于存储重新排序的数组 int index; int pval=1; //依次处理不同的位 for(int i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |