用java解决这个问题
时间: 2024-10-07 14:03:16 浏览: 19
leetcode-java:使用java解决问题
在Java中,你可以使用ArrayList或LinkedList这样的动态数组来解决这个问题,因为它们支持元素的快速插入和删除。以下是使用ArrayList的一个示例:
```java
import java.util.ArrayList;
public class InsertionSortList {
public static void insertSorted(ArrayList<Integer> list, int x) {
// 检查列表是否为空
if (list.isEmpty()) {
list.add(x);
return;
}
// 插入元素
for (int i = list.size() - 1; i >= 0 && list.get(i) > x; i--) {
list.set(i + 1, list.get(i)); // 将较大的元素后移一位
}
list.set(0, x); // 将x放在正确位置
}
public static void main(String[] args) {
ArrayList<Integer> sortedList = new ArrayList<>();
// 初始化有序列表
sortedList.add(1);
sortedList.add(3);
sortedList.add(5);
int x = 4;
insertSorted(sortedList, x);
System.out.println("Sorted List after inserting " + x + ":");
for (Integer num : sortedList) {
System.out.print(num + " ");
}
}
}
```
在这个例子中,`insertSorted`函数首先检查列表是否为空,如果是,则直接添加`x`。接着,它从列表末尾开始遍历,找到第一个比`x`小的元素,并依次将后面的元素前移。最后,将`x`设置在正确的位置。
阅读全文