根据所给的数据,先初始化数组,再将数组文件中的数据读入到数组中,对前100数据分别使用冒泡排序和Java的Qsort进行排序,并计时。
时间: 2024-09-23 20:01:16 浏览: 30
首先,我们需要准备一个数组来存储从文件中读取的数据。这通常涉及到以下步骤:
1. **数组初始化**:确定数组的大小,通常是文件中数据的数量加上一些预留空间。例如,如果文件里有99条数据,你可以选择创建一个包含100个元素的数组。
```java
int[] array = new int[100];
```
2. **数据读取**:使用`BufferedReader`或`Scanner`等工具从文件中逐行读取数据并存入数组。假设数据是以逗号分隔的整数,可以这样做:
```java
try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
String line;
int index = 0;
while ((line = br.readLine()) != null && index < 100) {
array[index++] = Integer.parseInt(line);
}
}
```
3. **排序算法选择**:对于冒泡排序,我们可以编写一个简单的循环实现。而对于快速排序(Java内置库中的`Arrays.sort()` 使用的是快速排序),可以直接调用:
```java
long startTime = System.currentTimeMillis();
// 冒泡排序
bubbleSort(array, 0, array.length - 1);
System.out.println("Bubble sort time: " + (System.currentTimeMillis() - startTime) + " ms");
startTime = System.currentTimeMillis();
Arrays.sort(array); // 或者 Arrays.qsort(array) (如果你在Java 9及以上版本)
System.out.println("Quick sort time: " + (System.currentTimeMillis() - startTime) + " ms");
```
4. **冒泡排序函数**:
```java
void bubbleSort(int[] arr, int start, int end) {
for (int i = start; i < end; i++) {
for (int j = 0; j < end - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 如果使用Java内置快速排序,代码更简洁:
public static void quickSort(int[] arr, int low, int high) {
// ... 实现快速排序算法...
}
```