zoukankan      html  css  js  c++  java
  • 图解插入排序

    插入排序,见名知意思,就是将元素插入到它应该待的位置,来实现排序。什么叫应该待的位置呢?通俗点说,插入排序的原理是将一个元素插入到有序数组,不断地扩展有序数组的长度实现整个数组的有序。

    插入排序进行的移位操作有两个:

      1、是将要插入元素清除,其他与有序数组无关元素后移

      2、是在找到了插入位置之后的插入动作涉及的移位

    寻找插入位置的时候要注意:

      在有序数组中从上往下检索,一旦找到匹配的一定要终止寻找,因为有序数组是逆序的,上面位置符合判断条件则下一个位置一定也符合判断条件,会导致位置定位错误。

    示例代码:

            int[] arr = new int[]{3, 5, 11, 2, 8};
            for (int i=0; i< arr.length-1; i++){
                int insertEle = arr[arr.length-1];
                int sortArrLimit = i;
                int willSortArrLimit = i+1;
                int tempPosition = willSortArrLimit;
    
                //其他元素后移
                for(int j=arr.length-1; j> willSortArrLimit; j--){
                    arr[j] = arr[j-1];
                }
    
                //寻找插入位置
                for (int j= 0; j<=sortArrLimit; j++ ){
                    if (insertEle > arr[j]){
                        tempPosition = j;
                        break;//找到位置之后要中断掉,有序数组是个逆序的数组
                    }
                }
    
                //执行插入动作
                for (int j=willSortArrLimit; j>tempPosition; j--){
                    arr[j] = arr[j-1];
                }
                arr[tempPosition] = insertEle;
            }
            System.out.println(Arrays.toString(arr));
  • 相关阅读:
    oracle授权另外一个用户访问自己创建的数据对象
    popupWindow使用详解
    oracle用户管理实例
    oracle用户管理入门
    sqlite数据库修改及升级
    android之listView定位到指定行同时隐藏输入键盘
    oracle数据库常用命令
    Oracle11g安装完成后给用户解锁
    Git学习笔记(一)
    gson使用详解
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/12244941.html
Copyright © 2011-2022 走看看