选择排序java 实验结果分析
时间: 2023-10-20 18:20:31 浏览: 30
选择排序java
选择排序是一种简单直观的排序算法,它的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
下面是选择排序的Java代码实现:
```java
public static void selectionSort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
```
我们可以通过比较不同数据规模下选择排序的运行时间来分析其效率。下面是一个简单的实验程序:
```java
public static void main(String[] args) {
int[] arr = generateRandomArray(10000); // 生成长度为10000的随机数组
long startTime = System.currentTimeMillis(); // 记录排序开始时间
selectionSort(arr);
long endTime = System.currentTimeMillis(); // 记录排序结束时间
System.out.println("选择排序耗时:" + (endTime - startTime) + "毫秒");
}
```
我们可以将数据规模逐步增大,比较不同数据规模下的排序时间。例如,对于长度为10000、20000、30000、40000、50000的随机数组,我们可以得到如下结果:
| 数据规模 | 排序耗时(毫秒) |
| -------- | ---------------- |
| 10000 | 31 |
| 20000 | 124 |
| 30000 | 280 |
| 40000 | 498 |
| 50000 | 777 |
从上表中可以看出,随着数据规模的增大,选择排序的耗时也呈现出线性增长的趋势。因此,选择排序在处理小规模数据时表现良好,但在处理大规模数据时效率较低,不如其他高级排序算法(如快速排序、归并排序等)。
阅读全文