上一篇
在学习编程的过程中,排序算法是基础且重要的内容。今天我们将详细讲解一种简单又实用的排序方法——插入排序。本教程专为Java初学者设计,无论你是否有算法基础,都能轻松理解并掌握。
插入排序(Insertion Sort)是一种直观的排序算法。它的工作原理类似于我们整理扑克牌:从左到右依次取出一张牌,然后将它插入到已排序部分的正确位置。
下面是一个完整的Java插入排序代码示例:
public class InsertionSort { public static void insertionSort(int[] arr) { // 从第二个元素开始遍历(索引为1) 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; // 插入到正确位置 } } public static void main(String[] args) { int[] numbers = {12, 11, 13, 5, 6}; System.out.println("排序前:"); printArray(numbers); insertionSort(numbers); System.out.println("排序后:"); printArray(numbers); } public static void printArray(int[] arr) { for (int value : arr) { System.out.print(value + " "); } System.out.println(); }} 让我们逐行解释这段代码:
i = 1:因为第一个元素默认是“已排序”的,所以从第二个元素开始处理。key = arr[i]:保存当前要插入的值。while 循环:从已排序部分的末尾向前扫描,只要遇到比 key 大的元素,就将其向后移动一位。arr[j + 1] = key:当找到合适位置后,将 key 插入。| 情况 | 时间复杂度 |
|---|---|
| 最好情况(已排序) | O(n) |
| 平均/最坏情况 | O(n²) |
| 空间复杂度 | O(1)(原地排序) |
虽然插入排序算法的时间复杂度较高,但它有以下优点:
通过本篇Java排序教程,你应该已经掌握了插入排序的基本原理和实现方法。作为初学者Java排序的入门算法,插入排序不仅帮助你理解排序逻辑,也为学习更高级算法打下基础。
动手试试吧!修改数组内容,观察排序过程,加深理解。编程之路,从理解每一个基础算法开始!
本文由主机测评网于2025-12-14发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127778.html