用数组实现快速排序,至少 50 个以上数据,用随机数初始化数组。 跑 5 万个数 java
时间: 2024-03-29 08:37:31 浏览: 78
用数组实现的快速排序算法
5星 · 资源好评率100%
这是一个使用 Java 实现的快速排序的示例代码:
```java
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
final int n = 50000;
int[] arr = new int[n];
// 初始化数组
Random rand = new Random();
for (int i = 0; i < n; i++) {
arr[i] = rand.nextInt(1000);
}
// 快速排序
long start = System.nanoTime();
quickSort(arr, 0, n-1);
long end = System.nanoTime();
// 计算时间
double time_taken = (double)(end - start) / 1_000_000_000;
System.out.printf("快速排序用时: %.3f 秒\n", time_taken);
}
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int pivot = arr[left];
int i = left;
int j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) i++;
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i-1);
quickSort(arr, i+1, right);
}
}
}
```
这里使用了 Java 的 `Random` 类生成随机数。
这个示例代码可以在命令行中运行,并接受一个整数参数 `n`,表示要排序的数据量。例如,你可以使用 `java QuickSort 100000` 命令来排序 100000 个随机数。
你也可以将这个示例代码中的快速排序算法替换成其他排序算法,例如归并排序、堆排序等。同样地,你可以参考上一条回答中提到的网站 [Sorting Algorithms Animations](https://www.toptal.com/developers/sorting-algorithms) 来学习更多排序算法的实现。
阅读全文