用 java语言以测试驱动开发实现基数排序
时间: 2024-05-12 14:16:31 浏览: 73
Java实现基数排序.rar
以下是用Java语言实现基数排序的示例代码:
```java
public class RadixSort {
public static void radixSort(int[] arr) {
if (arr == null || arr.length == 0) {
return;
}
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
int exp = 1;
int[] temp = new int[arr.length];
while (max / exp > 0) {
int[] buckets = new int[10];
for (int i = 0; i < arr.length; i++) {
int digit = (arr[i] / exp) % 10;
buckets[digit]++;
}
for (int i = 1; i < 10; i++) {
buckets[i] += buckets[i - 1];
}
for (int i = arr.length - 1; i >= 0; i--) {
int digit = (arr[i] / exp) % 10;
temp[--buckets[digit]] = arr[i];
}
for (int i = 0; i < arr.length; i++) {
arr[i] = temp[i];
}
exp *= 10;
}
}
}
```
接下来,我们使用JUnit进行测试驱动开发:
```java
import org.junit.Assert;
import org.junit.Test;
import java.util.Arrays;
public class RadixSortTest {
@Test
public void testRadixSort() {
int[] arr = {170, 45, 75, 90, 802, 24, 2, 66};
RadixSort.radixSort(arr);
int[] expected = {2, 24, 45, 66, 75, 90, 170, 802};
Assert.assertTrue(Arrays.equals(expected, arr));
}
}
```
在这个测试中,我们创建了一个未排序的整数数组,然后使用`RadixSort`类的`radixSort`方法对其进行排序。最后,我们断言排序后的数组与预期结果相同。如果测试通过,则基数排序的实现就是正确的。
阅读全文