Java编写:根据所输入的数据,分别对前100、前1000及全部数据分别使用冒泡排序和Java的Qsort进行排序,并计时。
时间: 2024-09-09 18:01:26 浏览: 39
首先,我们可以用Java编写一个程序,用于对数组进行排序。在这个程序中,我们将使用冒泡排序和Java的Arrays类中的sort方法(可以将其视为Java内置的快速排序算法的实现,尽管它可能不总是实现为传统意义上的快速排序)。程序将对前100个、前1000个以及全部数据执行排序,并记录每个操作的耗时。
以下是一个简单的示例代码实现:
```java
import java.util.Arrays;
import java.util.Random;
public class SortBenchmark {
public static void main(String[] args) {
Random random = new Random();
int[] data = new int[10000]; // 假设我们的数据集大小为10000
// 生成随机数据
for (int i = 0; i < data.length; i++) {
data[i] = random.nextInt(10000);
}
// 排序并计时前100个数据
long startTime = System.nanoTime();
bubbleSort(Arrays.copyOf(data, 100));
long endTime = System.nanoTime();
System.out.println("冒泡排序前100个数据耗时:" + (endTime - startTime) + "纳秒");
// 重新填充数据
random = new Random();
for (int i = 0; i < data.length; i++) {
data[i] = random.nextInt(10000);
}
// 排序并计时前1000个数据
startTime = System.nanoTime();
bubbleSort(Arrays.copyOf(data, 1000));
endTime = System.nanoTime();
System.out.println("冒泡排序前1000个数据耗时:" + (endTime - startTime) + "纳秒");
// 重新填充数据
random = new Random();
for (int i = 0; i < data.length; i++) {
data[i] = random.nextInt(10000);
}
// 排序并计时全部数据
startTime = System.nanoTime();
Arrays.sort(data);
endTime = System.nanoTime();
System.out.println("Arrays.sort排序全部数据耗时:" + (endTime - startTime) + "纳秒");
// 冒泡排序方法实现
public static void bubbleSort(int[] array) {
boolean swapped;
for (int i = 0; i < array.length - 1; i++) {
swapped = false;
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
// 交换元素
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
swapped = true;
}
}
if (!swapped) {
break;
}
}
}
}
}
```
在这段代码中,我们首先生成了一个大小为10000的随机整数数组。然后分别对前100个、前1000个和全部数据进行冒泡排序,并记录每个操作的时间。对于全部数据的排序,我们使用了Java内置的`Arrays.sort`方法,它通常比冒泡排序要高效得多。
阅读全文