用插入排序创建一组反向排序的整数(输入大小和范围相同)并记录运行时间,用Java代码书写
时间: 2024-10-23 21:05:25 浏览: 21
java 实现计数排序和桶排序实例代码
插入排序通常用于小型数组或者部分有序的数据,对于完全反向排序的情况,插入排序效率会很低,因为它默认是按照升序来进行的。为了适应这种情况,我们可以修改插入排序算法,使其在查找插入位置时从大到小比较。
下面是一个简单的Java代码示例,用于插入排序一个逆序排列的整数数组,并使用`System.currentTimeMillis()`获取开始和结束的时间来粗略地测量运行时间:
```java
public class InverseInsertionSort {
public static void main(String[] args) {
int[] arr = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; // 反向排序的整数数组
long startTime = System.currentTimeMillis();
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) { // 修改比较条件为大于
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key; // 插入元素
}
long endTime = System.currentTimeMillis();
long elapsedTime = endTime - startTime;
System.out.println("Sorted array: " + Arrays.toString(arr));
System.out.println("Execution time: " + elapsedTime + " ms");
}
}
```
这个代码首先假设输入的数组已经是反向排序的。如果需要随机生成指定范围和大小的反向整数数组,可以在循环之前添加生成数组的部分。
阅读全文