//基数排序
//从最低位开始排序,依次向最高位模拟。
// 第一次
// 0 1 2 3 4 5 6 7 8 9
// 0 1 512 343 64 125 216 27 8 729
//
//
// 第二次
// 0 1 2 3 4 5 6 7 8 9
// 0 512 125 343 64
// 1 216 27
// 8 729
//
//
// 第三次
// 0 1 2 3 4 5 6 7 8 9
// 0 125 216 343 512 729
// 1
// 8
// 27
// 64
//
#include<iostream>
using namespace std;
struct list{
int element;
struct list *next;
};
int main(){
struct list *header[10];
for(int i=0; i<10; ++i){
header[i] = (list*)malloc(sizeof(list));
header[i]->next = NULL;
}
int n; cin >> n;
int a[n],maxn = -1;
for(int i=0; i<n; ++i){
int t,k = 0; cin >> t;
a[i] = t;
while(t){
k++;
t/=10;
}
if(k>maxn){
maxn = k;
}
}
for(int i=0; i<n; ++i){
int t = a[i];
t%=10;
list *temp = (list*)malloc(sizeof(list));
temp->element = a[i];
temp->next = NULL;
list *tt = header[i];
while(tt->next!=NULL){
tt = tt->next;
}
tt->next = temp;
}
for(int i=1; i<maxn; ++i){
for(int j=0; j<10; ++j){
list *t = header[j];
}
}
return 0;
}
基数排序(有空再补)(咕咕咕)
最新推荐文章于 2023-02-06 06:33:38 发布