【排序(C++实现)】:基数排序

您所在的位置:网站首页 字符串排序c++实现 【排序(C++实现)】:基数排序

【排序(C++实现)】:基数排序

2024-07-10 20:48| 来源: 网络整理| 查看: 265

目录

 

基本思想

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