更新时间:2025-02-22 23:14:56
在编程的世界里,排序算法是不可或缺的一部分。今天,我们要聊的是插入排序(Insertion Sort)——一种简单直观的排序算法。它的工作原理类似于我们日常整理扑克牌时的操作:每次从未排序的部分取出一个元素,然后找到其在已排序部分中的正确位置,并将其插入。
首先,让我们来了解一下它的基本思想:假设有一个数组,我们把数组的第一个元素视为已排序部分,剩下的元素视为未排序部分。然后,我们逐个处理未排序部分的元素,将它们插入到已排序部分的适当位置。通过这种方式,逐步扩大已排序部分的范围,直到整个数组被排序。
下面,我们来看一下如何用Java实现这个过程:
```java
public class InsertionSort {
public static void sort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
// Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
public static void main(String[] args) {
int[] arr = {12, 11, 13, 5, 6};
sort(arr);
System.out.println(Arrays.toString(arr));
}
}
```
在这个示例中,我们定义了一个名为`sort`的方法来实现插入排序。通过循环遍历数组,并且在每个循环中找到当前元素的正确位置,然后将其插入到已排序的序列中。这样,经过一系列的比较和移动操作后,最终得到一个有序的数组。
希望这篇简短的文章能帮助你理解并实现插入排序!如果你有任何疑问或需要进一步的帮助,请随时提问。🌟
Java 插入排序 编程基础