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

383 ℃
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,我们会在看到邮件的第一时间内为您处理!

网站备案流程介绍,域名备案需要注意哪些?
如何提升网站用户体验,SEO优化有三个重点
淘宝特价版入驻流程 怎么开店铺
PHP如何限制用户注册次数防止恶意刷
介绍5种获取时间戳方法