您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java数据结构和算法——基数排序算法

小志的博客 发布时间:2020-08-12 23:14:00 ,浏览量:0

目录
    • 一、基数排序算法的(桶排序)介绍
    • 二、基数排序算法的基本思想
    • 三、基数排序算法的思路分析图解
    • 四、基数排序算法的应用示例需求
    • 五、基数排序算法的推导过程示例演示
    • 六、基数排序算法的完整示例演示
    • 七、测试基数排序算法所消耗的时间示例
    • 八、基数排序存算法注意事项

一、基数排序算法的(桶排序)介绍
  • 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用
  • 基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法
  • 基数排序(Radix Sort)是桶排序的扩展
  • 基数排序是1887年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。
二、基数排序算法的基本思想
  • 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
三、基数排序算法的思路分析图解

在这里插入图片描述在这里插入图片描述

四、基数排序算法的应用示例需求

将数组 {53, 3, 542, 748, 14, 214 } 使用基数排序, 进行升序排序

五、基数排序算法的推导过程示例演示

1、代码

package com.rf.springboot01.dataStructure.sort;

import java.util.Arrays;

/**
 * @description: 基数排序算法的推导过程示例演示
 * @author: xiaozhi
 * @create: 2020-08-12 22:23
 */
public class RadixSort {
    public static void main(String[] args) {
        int arr[] = { 53, 3, 542, 748, 14, 214};
        radixSort(arr);
    }
    
    /** 
    * @Description:  基数排序算法的推导过程示例方法
    * @Param: [arr] 
    * @Author: xz  
    * @return: void
    * @Date: 2020/8/12 22:25  
    */ 
    public static void radixSort(int[] arr){

        //定义一个二维数组,表示10个桶, 每个桶就是一个一维数组
        //说明
        //1. 二维数组包含10个一维数组
        //2. 为了防止在放入数的时候,数据溢出,则每个一维数组(桶),大小定为arr.length
        //3. 很明确的表示,基数排序是使用空间换时间的经典算法
        int[][] bucket=new int[10][arr.length];

        //为了记录每个桶中,实际存放了多少个数据,我们定义一个一维数组来记录各个桶的每次放入的数据个数
        //可以这么理解 比如:bucketElementCounts[0] , 记录的就是  bucket[0] 桶的放入数据个数
        int[] bucketElementCounts=new int[10];
        
        /** 
        * @Description: 第一轮(针对每个元素的个位数进行排序处理)
        * @Param: [arr] 
        * @Author: xz  
        * @return: void
        * @Date: 2020/8/12 22:29  
        */
        for(int j=0;j            
关注
打赏
1661269038
查看更多评论
0.0524s