您当前的位置: 首页 >  Java

Kevin-Dev

暂无认证

  • 0浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Java -- 算法】十大排序算法之基数排序

Kevin-Dev 发布时间:2019-12-10 10:19:54 ,浏览量:0

在这里插入图片描述

本文介绍了排序算法的 Java 代码实现,所有代码均可通过 菜鸟工具在线编译器 直接运行,因此打算整理一下分享给大家。

简介

基数排序是另外一种比较有特色的排序方式,它不需要直接对元素进行相互比较,也不需要将元素相互交换,你需要做的就是对元素进行“分类”。

基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程: (1) 分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中) (2) 收集,再将放置在0~9号桶中的数据按顺序放到数组中 重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位)

实例

1. Java 代码


public class Main {
	public static void main(String[] args) {
	    int[] a = {13,25,1111,232,4454,79,86,98,61,447};
		System.out.println("初始值:");
		printArray(a);
		a= sort(a);
		System.out.println("\n排序后:");
		printArray(a);
	}
	
	public static int[] sort(int[] data) {
	    int maxLength = getMaxLength(data);
	    int[] temp = baseSort(data,0,maxLength);
	    return temp;
	}
	
	private static int[] baseSort(int[] data,int i,int maxLength) {
	    if(i >= maxLength) {
	        return data;
	    }
	    
	    int len = data.length;
	    
	    int[] count = new int[10];
	    
	    int[] temp = new int[len];
	    
	    for (int j = 0;j             
关注
打赏
1658837700
查看更多评论
0.0464s