博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第八章 线性时间排序 8.3 基数排序
阅读量:4678 次
发布时间:2019-06-09

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

package chap08_Linear_Time_Sort;import static org.junit.Assert.*;import java.util.Arrays;import org.junit.Test;public class CopyOfSortAlgorithms {    /**     * 基数排序     *      * @param n     * @param digit     */    static void radixSort(int[] n, int digit) {        int[] b = new int[n.length];// 临时存储数组        int[] c = new int[10];// 用于记录各个位上的数个数        int d = 1;// 用来记录位数,从各位到最大数的位数        int div = 1;// 作为除数,从各位到最大位,10,100,1000,10000.....        while (d <= digit) {            for (int i = 0; i < n.length; i++) {                c[(n[i] / div) % 10]++;            }            for (int j = 1; j < 10; j++) {                c[j] += c[j - 1];            }            for (int k = n.length - 1; k >= 0; k--) {                b[c[(n[k] / div) % 10] - 1] = n[k];                c[(n[k] / div) % 10]--;            }            System.arraycopy(b, 0, n, 0, b.length);            Arrays.fill(c, 0);            div *= 10;            d++;        }    }    @Test    public void testName() throws Exception {        int[] a = { 329, 457, 657, 839, 436, 72, 35, 1 };        System.out.println(Arrays.toString(a));        radixSort(a, 3);        System.out.println(Arrays.toString(a));    }}

转载于:https://www.cnblogs.com/xiaojintao/p/3781692.html

你可能感兴趣的文章
s11 day Linux 和nginx 部署
查看>>
程序猿的爱情-2012-01-22
查看>>
CentOS7.2 安装iptables
查看>>
网络是怎样连接的—1.浏览器生成消息
查看>>
codevs1430 素数判定
查看>>
2017年6月2号课堂笔记
查看>>
github
查看>>
poj1015【DP.......无奈了】
查看>>
C#性能优化的一些技巧
查看>>
PAT 甲级 1024 Palindromic Number
查看>>
信息安全经典书籍
查看>>
ios坐标位置转换
查看>>
Java多线程—JUC原子类
查看>>
C#中常用到的时间函数(天数差、星期几等)
查看>>
如何理解一台服务器可以绑定多个ip,一个ip可以绑定多个域名
查看>>
改进delphi中的RoundTo函数
查看>>
Microsoft Visual SourceSafe使用经验
查看>>
威尔逊定理及证明
查看>>
[LeetCode] Peeking Iterator
查看>>
Understanding Unix/Linux Programming-用户程序play_again4.c
查看>>