排序算法
2.插入排序
*分析:何为插入排序?它是怎么进行排序的?
答:同选择排序不同,插入排序的起始是 i 在数组的第二个位置,j在第一个位置。每次遍历的时候保证i之前的数局部有序。
来个动图:
import java.util.Arrays;
//插入排序:局部有序(边排边插)
public class InsertSort {
public static void main(String[] args) {
int[] arr = {5,3,2,1,1,1,6};
insertSort(arr);
}
static void insertSort(int[] arr){
for(int i=1;i<arr.length;i++){
int temp=arr[i];//定义临时变量记录待插入的值
//在循环里面加入条件当临时变量小于后面一位的值是进入循环将两个值交换
for(int j=i-1;j>=0&&temp<arr[j];j--){
arr[j+1]=arr[j];
arr[j]=temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
//时间复杂度为O(n^2),空间复杂度为O(1)