插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n²)。是稳定的排序方法。插入排序的基本思想是:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
package com.sort;
import java.util.Arrays;
/**
* 面试锦集:插入排序
*
* @author 小辉GE/小辉哥
* <p>
* 2019年8月17日 下午21:30:00
*/
public class InsertSort {
public static void main(String[] args) {
// 定义数组
int[] arry = new int[]{3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
System.out.println("arryyy数组排序前为:" + Arrays.toString(arry));
// 插入排序核心逻辑
if (!(arry == null || arry.length < 2)) {
for (int i = 1; i < arry.length; i++) {
for (int j = i; j > 0; j--) {
if (arry[j] < arry[j - 1]) {
int temp = arry[j];
arry[j] = arry[j - 1];
arry[j - 1] = temp;
} else {
break;
}
}
}
}
System.out.println("arryyy数组排序后为:" + Arrays.toString(arry));
}
}
具体插入排序步骤详解,大家可以参考下图动态展示效果:
测试输出结果如下:
以上代码仅供参考,如有不当之处,欢迎指出!!!
更多干货,欢迎大家关注和联系我。期待和大家一起更好的交流、探讨技术!!!