2、根据所给的数据,分别对前100、前1000及全部数据分别使用冒泡排序和Java的Qsort进行排序,并计时。用java来写
时间: 2024-09-23 19:14:11 浏览: 30
java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
为了演示冒泡排序和快速排序(Java内置的Quicksort实现),我们将首先创建一个随机数组,然后按指定大小切分数据,最后分别对每个部分进行排序并测量时间。以下是相应的Java代码:
```java
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.TimeUnit;
public class SortingPerformanceComparison {
public static void main(String[] args) {
int size = 10000; // 示例数据大小,可以根据需求调整
Random rand = new Random();
int[] data = generateRandomArray(size); // 生成随机整数数组
int[] first100 = Arrays.copyOfRange(data, 0, 100);
int[] first1000 = Arrays.copyOfRange(data, 0, 1000);
int[] allData = data;
// 冒泡排序
measureSortingTime("Bubble Sort (first 100)", first100, BubbleSort::bubbleSort);
measureSortingTime("Bubble Sort (first 1000)", first1000, BubbleSort::bubbleSort);
measureSortingTime("Bubble Sort (all data)", allData, BubbleSort::bubbleSort);
// Java内置的Quicksort
measureSortingTime("Quicksort (first 100)", first100, QuickSort::quicksort);
measureSortingTime("Quicksort (first 1000)", first1000, QuickSort::quicksort);
measureSortingTime("Quicksort (all data)", allData, QuickSort::quicksort);
}
// 冒泡排序
private static void bubbleSort(int[] arr) {
// 实现冒泡排序...
}
// 快速排序 (Java内置库)
private static void quicksort(int[] arr) {
Arrays.sort(arr);
}
// 测量排序时间
private static void measureSortingTime(String method, int[] array, Runnable sortFunction) {
long startTime = System.nanoTime();
sortFunction.run();
long endTime = System.nanoTime();
long duration = TimeUnit.NANOSECONDS.toMillis(endTime - startTime);
System.out.printf("%s: %d ms%n", method, duration);
}
// 生成随机数组
private static int[] generateRandomArray(int size) {
return new Random().ints(0, size).toArray();
}
}
```
注意:上述代码未提供完整的冒泡排序和快速排序实现,因为它们通常在教学或示例中展示,但在这个场景下并不是重点。你需要自己实现冒泡排序,并利用Java的`Arrays.sort()`来完成快速排序。
阅读全文