排序算法之插入排序
插入排序
插入排序即把数组元素取出来,然后与现有的已经排好序数组进行遍历比较,然后将元素插入进去,时间复杂度为O(N2),最好的情况O(N)
上代码:
public class InsertSort {
private static void insertSort(int[]arr) {
//比较arr[i]和arr[i-1],
//如果arr[i]<arr[i-1],i之前的大于arr[i]的数向后移动一位,插入arr[i]
int j=0;
for(int i =1;i<arr.length;i++) {
if(arr[i]<arr[i-1]) {
int t = arr[i];
for(j = i;j>0&&arr[j-1]>t;j--) {
arr[j] = arr[j-1];
}
arr[j]=t;
}
}
}
public static void main(String[] args) {
int[] ints = {5, 3, 4, 1, 2};
insertSort(ints);
System.out.println(Arrays.toString(ints));
}
浙公网安备 33010602011771号