| - public static void insertSort(int[] arr){
- for(int i = 1;i <arr.length; i++){
- int j = -1;
- //找到arr[i]应该摆放的位置,此处可以利用查找算法进行优化
- while(j <= i && arr[i] > arr[++j]);
- if(j < i){
- //将j之后的数据移动一位,然后把arr[i]移动到j处
- int temp = arr[i];
- for(int k = i-1;k >= j;k--){
- arr[k+1] = arr[k];
- }
- arr[j] = temp;
- }
- }
- }
复制代码 简单说就是数组在循环过程中下一个和上一个比较,把小的放到上一个里,大的放到下一个里,然后接着循环,这样就实现了从小到大,希望我说的够详细
|