11Java基数排序

Posted 菜鸟学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11Java基数排序相关的知识,希望对你有一定的参考价值。

Java基数排序


package sort;

import java.util.Arrays;

class RadixSort {


private static int getMax(int arr[], int n) {
int mx = arr[0];
for (int i = 1; i < n; i++)
if (arr[i] > mx)
mx = arr[i];
return mx;
}

private static void countSort(int arr[], int n, int exp)
{
int output[] = new int[n];
int i;
int count[] = new int[10];
Arrays.fill(count,0);

for (i = 0; i < n; i++)
count[ (arr[i]/exp)%10 ]++;

for (i = 1; i < 10; i++)
count[i] += count[i - 1];

for (i = n - 1; i >= 0; i--)
{
output[count[ (arr[i]/exp)%10 ] - 1] = arr[i];
count[ (arr[i]/exp)%10 ]--;
}

for (i = 0; i < n; i++)
arr[i] = output[i];
}

private static void radixsort(int arr[], int n) {

int m = getMax(arr, n);


for (int exp = 1; m/exp > 0; exp *= 10)
countSort(arr, n, exp);
}


static void print(int arr[], int n)
{
for (int i=0; i<n; i++)
System.out.print(arr[i]+" ");
}



public static void main (String[] args)
{
int arr[] = {170, 45, 75, 90, 802, 24, 2, 66};
int n = arr.length;
radixsort(arr, n);
print(arr, n);
}
}
// Written by James Mc Dermott(theycallmemac)


以上是关于11Java基数排序的主要内容,如果未能解决你的问题,请参考以下文章

数据结构-排序之基数排序(使用java代码实现)

数据结构-排序之基数排序(使用java代码实现)

数据结构-排序之基数排序(使用java代码实现)

为啥我的基数排序 JAVA 实现比快速排序慢?

经典十大排序算法(含升序降序,基数排序含负数排序)Java版完整代码建议收藏系列

数据结构之排序算法Java实现—— 基数排序法