java常见排序算法——基数排序(附代码示列)

402 ℃
public  void radixSort(int[] nums){
  int min = Integer.MAX_VALUE;
  int max = Integer.MIN_VALUE;
  for (int num : nums) {
    min = Math.min(min, num);
    max = Math.max(max, num);
  }
  for (int i = 0; i < nums.length; i++) {
    nums[i] -= min;
  }
  max -= min;
  int maxLen = (max+"").length();

  int[][] bucket = new int[nums.length][10];
  int[] bucketCount = new int[10];
 
  for (int i = 0, n = 1; i < maxLen; i++, n*=10) {
    for (int num : nums) {
      int digitVal = num / n % 10;
      bucket[bucketCount[digitVal]][digitVal] = num;
      bucketCount[digitVal]++;
    }
    int index = 0;
    for (int j = 0; j < bucketCount.length; j++) {
      if(bucketCount[j] > 0){
        for (int k = 0; k < bucketCount[j]; k++) {
          nums[index] = bucket[k][j];
          index++;
        }
      }
      bucketCount[j] = 0;
    }
  }
  for (int i = 0; i < nums.length; i++) {
    nums[i] += min;
  }
}

PS:按个、十、百位依次归类排序。

java常见排序算法——桶排序(附代码示列)

java常见排序算法——计数排序(附代码示列)

java常见排序算法——堆排序(附代码示列)

java常见排序算法——希尔排序(附代码示列)

java常见排序算法——归并排序(附代码示列)

标签: java排序算法, 基数排序

上面是“java常见排序算法——基数排序(附代码示列)”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_4263.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

hbuilder编辑器上安装git插件(克隆项目/同步代码/提交代码等)
帝国CMS收藏删除功能的另类方法
el-form-item/el-table-column用v-if赋值出现数据错乱
新站交换友情链接需要遵守哪些基本准则?
php语法如何将数组转为十六进制代码