插入排序
想象一下,打扑克的时候,手里拿着 4 5 6 8,这时来了一张7,放哪?放5,6中间啊,怎么放?插进去啊!插进去后,成为 4 5 6 7 8 这就是插入排序
public class InsertSort {
public static void main(String[] args) {
int[] arr={3,4,2,1,64,7,8,5,30,57,765,-4,0,655};
insert(arr);
for (int i : arr)
{
System.out.print(i+" ");
}
}
private static void insert(int[] arr) {
for (int i = 1; i < arr.length; i++) {
for (int j=i; j >0 && (arr[j-1]>arr[j]); j--) { //比较arr[j]与前面所有数的大小,若arr[j]<arr[j-1],则交换
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}
}
该方法对于倒置数很少的数组十分高效,当倒置数很少时,只需要进行少量的交换即可完成