您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法
基数排序法(图文)
第十三双眼睛2023-10-18【数据结构与算法】人已围观
简介基数排序法
基数排序法
package com.xingchen.day006; import java.util.Arrays; public class RaidSort { public static void main(String[] args) { int[] arr = {53,3,542,748,14,214}; sort(arr); System.out.println(Arrays.toString(arr)); } public static void sort(int[] arr) { // 得到数组中最大的位数 int max = arr[0]; for (int i= 0 ; i<arr.length; i++) { if (arr[i]> max) { max = arr[i]; } } int maxLength = (max + "").length(); // 定义10个一维数组,来表示10个捅 int [][] bucket = new int[10][arr.length]; // 定一个一个一维数组,记录每个桶有多少个数据 int []bucketCount = new int[10]; for (int i = 0, n = 1; i< maxLength; i++, n = n*10) { //对每个元素的个位进行处理 for (int j = 0; j<arr.length; j++) { int w = arr[j]/n%10; //放入到对应的桶中 bucket[w][bucketCount[w]] = arr[j]; bucketCount[w]++; } int index = 0; // 将所有的数放入到原数组 for (int k = 0; k<bucketCount.length; k++) { if (bucketCount[k] != 0) { for (int l = 0; l< bucketCount[k]; l++) { arr[index] = bucket[k][l]; index ++; } } bucketCount[k] = 0; } } } } |
Tags:
很赞哦! ()
上一篇:归并排序法(图文)
下一篇:二分查找算法(图文)