1.概念
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 [1] 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 [2] 。
来自百度百科
2.图解
3.代码
public class Test {
static void insert(int[] nums) {
System.out.println("排序前:");
for (int num : nums) {
System.out.print(num + " ");
}
System.out.println("");
int len = nums.length;
for (int i = 1; i < len; i++) {
int n = nums[i];//去除插入的数据
int j = i;//记录插入位置
while (j > 0 && nums[j - 1] > n) {//升序
nums[j] = nums[j - 1];
j--; //这两部就是符合条件往后移动
}
nums[j] = n;
}
System.out.println("排序后:");
for (int num : nums) {
System.out.print(num + " ");
}
}
public static void main(String[] args) {
insert(new int[]{2,5,6,8,1,3,5,7,2,3,56,3});
}
}
运行结果