概述
插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。
代码
package suanFa;
import java.util.Arrays;
public class ChaRu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {9, 1, 12, 5, 3, 11, 7, 8};
System.out.println(Arrays.toString(insertSort(arr)));
}
/**
* 插入排序
*
* @param arr
* @return
*/
public static int[] insertSort(int[] arr) {
int length = arr.length;
for (int i = 1; i < length; i++) {
int temp = arr[i];
int j = i - 1;
for (; j >= 0 && arr[j] > temp; j--) { //j >=0 是为了排序插入的第一个元素,如果如果写>0就会掠过第一个元素
if (arr[j] > temp) {
}
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
return arr;
}
}
运行结果
[1, 3, 5, 7, 8, 9, 11, 12]