用插入排序创建一组排序过的整数并记录运行时间,用Java代码
时间: 2024-10-23 14:05:00 浏览: 26
插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。以下是使用Java实现插入排序的一个示例,同时我们还会使用`System.currentTimeMillis()`来记录开始和结束的时间,计算出运行时间:
```java
import java.util.ArrayList;
import java.util.List;
public class InsertionSort {
public static void main(String[] args) {
// 创建一个无序列表
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
numbers.add(i % 50); // 随机生成0到49之间的整数,模拟一些乱序
}
long startTime = System.currentTimeMillis(); // 记录开始时间
// 插入排序
for (int i = 1; i < numbers.size(); i++) {
int key = numbers.get(i);
int j = i - 1;
while (j >= 0 && numbers.get(j) > key) { // 将大于key的元素向右移动
numbers.set(j + 1, numbers.get(j));
j--;
}
numbers.set(j + 1, key); // 插入key到合适的位置
}
long endTime = System.currentTimeMillis(); // 记录结束时间
System.out.println("Sorted numbers: " + numbers);
System.out.println("Time taken to sort: " + (endTime - startTime) + " milliseconds"); // 输出运行时间
}
}
```
在这个例子中,我们首先生成了一个包含随机整数的列表,然后应用插入排序算法对其进行排序,并在排序前后分别记录时间。
阅读全文