java插入排序算法讲解
时间: 2023-10-10 14:11:50 浏览: 207
插入排序是一种简单直观的排序算法,它的基本思想是将一个元素插入到已经有序的序列中的适当位置,使得插入后的序列仍然有序。下面是一个Java实现的插入排序算法的示例代码:
```java
public class InsertSort {
public static void main(String[] args) {
int[] array = {53, 68, 32, 96, 58, 12, 25, 68, 99};
System.out.println("原序列:");
for (int i : array) {
System.out.print(i + " ");
}
System.out.println();
insertSort(array);
System.out.println("排序后:");
for (int i : array) {
System.out.print(i + " ");
}
}
public static void insertSort(int[] arr) {
int preIndex, current;
// i作为本次循环确定取出的元素值下标
for (int i = 1; i < arr.length; i++) {
// preIndex:为记录当前下标i需要从后往前的下标值
preIndex = i - 1;
// 取出本次循环最后一个下标i的元素值
current = arr[i];
// 当比较的preIndex值还没越界,并且下标preIndex的元素值大于本次比较值current时
// preIndex下标元素值后移,同时preIndex--,继续比较下一次
while (preIndex >= 0 && arr > current) {
arr = arr = current;
}
}
}
```
在这个示例中,我们首先定义了一个`insertSort`方法来实现插入排序。该方法接受一个整型数组作为参数,并对其进行排序。在方法中,我们使用两个循环来进行排序:外层循环从数组的第二个元素开始,内层循环用于比较并将当前元素插入到已排序序列的适当位置。具体来说,内层循环首先将当前元素保存在`current`变量中,然后从当前元素的前一个元素开始,逐个向前比较并将较大的元素后移,直到找到合适的位置插入`current`。最后,将`current`插入到正确的位置,完成一次插入操作。重复这个过程,直到数组中的所有元素都被插入到正确的位置。
插入排序的时间复杂度是O(n^2),其中n是数组的长度。它是一种稳定的排序算法,因为在比较和插入的过程中,相等元素的相对顺序不会改变。
希望这个讲解能帮助您理解Java中的插入排序算法。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [插入排序详解(Java)](https://blog.csdn.net/weixin_45969711/article/details/127741051)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [插入排序详解(Java实现)](https://blog.csdn.net/qq_38741971/article/details/81662860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [插入排序](https://blog.csdn.net/weixin_42615154/article/details/109142872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文