C++实现基数排序
发布日期:2021-07-01 04:09:01 浏览次数:2 分类:技术文章

本文共 997 字,大约阅读时间需要 3 分钟。

#include 
using namespace std;int output_index[] = { 0,0,0,0,0,0,0,0,0,0 };void init_output_index() { for (int i = 0; i < 10; i++) { output_index[i] = 0; }}int** map(int input[], int num,int _) { int** output = new int*[10]; for (int i = 0; i < 10; i++) { output[i] = new int[num]; } init_output_index(); for (int i = 0; i < num; i++) { int tmp = input[i]%_*10/_; output[tmp][output_index[tmp]] = input[i]; output_index[tmp]++; } return output;}int* reduce(int** input, int num) { int* output = new int[num]; int index = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j
max) { max = input[i]; } } while (max/_ > 0) { _ *= 10; } return _;}int main() { int num; cin >> num; int* input=new int[num]; for (int i = 0; i < num; i++) { cin >> input[i]; } int max_=arr_max_(input, num); for (int _ = 10; _ <= max_; _ *= 10) { input = reduce(map(input, num, _), num); for (int i = 0; i < num; i++) { cout << input[i] << " "; } cout << endl; } system("pause"); return 0;}

转载地址:https://mortal.blog.csdn.net/article/details/83279586 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:网络安全与网络攻击
下一篇:关于OpenCV算法未实现及其版权问题

发表评论

最新留言

很好
[***.229.124.182]2024年04月28日 09时16分53秒