java基数排序,1.10 基数排序

艾孜尔江补充使用C#基数排序算法如下:

///基数排序

static void RadixSort(List list)

{

int maxValue = list.Max();//列表内部方法拿过来用用(在Linq中)

int it = 0;//需要几趟

//maxvalue 9-1 99-2 999-3

//10^0<=9 10^1>9 it=1

//10^0<99 10^1<99 10^2>99 it=2

while (Math.Pow(10, it) <= maxValue)

{

List> buckets = new List>(10);//分10个桶对应0-9

for (int i = 0; i < 10; i++)

{

buckets.Add(new List());

}//列表初始化大小

for (int i = 0; i < list.Count; i++)//入桶

{

//989 it=0 989/10^it=989 989%10=9;

int digit = (int)((list[i]) / (Math.Pow(10, it)) % 10);//得到对应桶

buckets[digit].Add(list[i]);

}//全部入桶

list.Clear();//依次取出来

for (int i = 0; i < buckets.Count; i++)

{

list.AddRange(buckets[i]);

}

it += 1;//继续下一次循环入桶出桶

}

}

艾孜尔江

艾孜尔江

bju***ft@sina.com5个月前 (10-08)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值