博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基数排序---Java实现+C++实现
阅读量:4656 次
发布时间:2019-06-09

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

基数排序是基于桶排序实现的,总之基本思想是:先基于个位进行桶排序,更新原序列;再基于十位进行桶排序,更新原序列……

code1:java

import java.util.*;public class JavaTest1{	public static void main(String[] args)	{		int a[]={1,255,8,6,25,47,14,35,58,75,96,158,657};					bucketsort(a);		showset(a);	}		public static void showset(int[] b)	{		for(int i=0;i
[] basket=new LinkedList[10]; for(int i=0;i<10;i++) { basket[i]=new LinkedList
(); } int maxlen=-1; for(int i=0;i
maxlen) { maxlen=Integer.toString(data[i]).length(); } } for(int i=maxlen-1;i>=0;i--) { for(int j=0;j
代码的基本思想:

先进行个位排序,再进行十位排序,再进行百位排序……

code2:C++

/*==============================9 name: radix sort--------------------------------time complexity:average		O(2dn)--------------------------------space complexity:O(n)--------------------------------stability:stable==============================*/void refresh_data(std::vector
&a, std::vector
> &sto){ std::vector
::iterator it,it1; std::vector
>::iterator it2; it=a.begin(); it2=sto.begin(); while(it!=a.end() && it2!=sto.end()) { it1=(*it2).begin(); while(it1!=(*it2).end()) { *it=*it1; it1++; it++; } (*it2).clear(); it2++; } return;}//suppose:there are no minus numbervoid radix_sort(std::vector
&a){ std::vector
> sto; sto.resize(10); int max=0; std::vector
::iterator it=a.begin(); while(it!=a.end()) { int idx; if(max<*it) { max=*it; } idx=(*it)%10; sto[idx].push_back(*it); it++; } refresh_data(a,sto); int d=0; int temp=max; while(1) { if(temp!=0) { d++; } else { break; } temp/=10; } for(int i=1;i<=d;i++) { int div=pow(10.0,i); it=a.begin(); while(it!=a.end()) { int idx; idx=(*it/div)%10; sto[idx].push_back(*it); it++; } refresh_data(a,sto); } return;}

转载于:https://www.cnblogs.com/mfrbuaa/p/3987767.html

你可能感兴趣的文章
[CQOI2013]新Nim游戏 线性基
查看>>
我的成就故事
查看>>
VB6.0 API 累计
查看>>
第十周学习进度博客
查看>>
Ecshop 最小起订量如何设置
查看>>
不使用其他变量实现两变量互换
查看>>
bcp功能
查看>>
xcode项目打不开:incompatible project version问题
查看>>
学习网站
查看>>
C#4.0新特性dynamic\可选参数、命名参数
查看>>
使用免费SSL证书让网站支持HTTPS访问
查看>>
第5章 使用MUI与H5+构建移动端app
查看>>
poj 2528 Mayor's posters (线段树+染色)
查看>>
eclipse中跳转到其它函数方法后如何快速返回原处
查看>>
第三次作业
查看>>
javascript相关知识
查看>>
数组对象去重
查看>>
你未必知道的12个JavaScript技巧
查看>>
mysql的基本操作命令
查看>>
微信小程序---数据缓存
查看>>