Fork me on GitHub

插入排序

插入排序

步骤:

  • 第一步:从数组的第二个位置开始向前比较,如果比前面位置小,就交换顺序;到达左边界也退出比较(即左边已经没有数能与其进行比较了)
  • 第二步:指针向后移一位然后重复第一步
public class InsertSort {
    //测试
    public static void main(String[] args) {
        int[] arr={5,4,3,2,1};
        sort(arr);
        TestUtils.print(arr);
    }
    public static void sort(int[] arr){
        for (int i = 1; i < arr.length; i++) {//要插入的数的下标位置
            while (arr[i]<arr[i-1]){//与前一个数进行比较。while是重点(不断进行比较直到找到插入位置)
		//交换
                arr[i-1]=arr[i-1] ^ arr[i];
                arr[i]=arr[i-1] ^ arr[i];
                arr[i-1]=arr[i-1] ^ arr[i];
                if (i--==1){//出口+指针左移
                    break;
                }
                //i--;//指针左移
            }
        }
    }
}
posted @ 2021-03-17 14:29  雾深  阅读(75)  评论(0编辑  收藏  举报