• 插入排序


    假设数列第一个元素为已排序数列,剩余数列为未排序将待排序元素挨个插入到已排序数列中每次插入都必须保证数列是有序的,即通过比较和移动有序数列中的元素,将元素插入到合适的位置
    思路:如同玩扑克牌一样,每次摸牌都将它与手中的牌比较,始终将牌放在比它大的牌前面,比它小的牌后面。这样当牌全部摸到手上后,就是一个有序的序列。从后往前找合适的位置。
    public class MainActivity extends AppCompatActivity {
        int[] arr = new int[]{9, 5, 4, 8, 7, 3, 1};
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            int[] insert = insert(arr);
            System.out.println(Arrays.toString(insert));
    
        }
    
        public int[] insert(int[] array) {
            for (int i = 1; i < array.length; i++) {
                if (array[i] < array[i - 1]) {//如果第i个数大于前一个数就不用判断了,因为前面都是有序数列,大于前一个数肯定比前面所有数都大,否则的话把这个数拿出来也就是赋值给temp,然后依次与前面的数比较,如果比前一个数小就让前一个数往后挪一位直到找到比temp小的位置放进去
                    int temp = array[i];
                    int f = i;
                    for (; f >= 1 && array[f - 1] > temp; f--) {
                        array[f] = array[f-1];
    
                    }
                array[f] = temp;
                }
            }
            return array;
        }
    }
  • 相关阅读:
    完全卸载Oracle方法、步骤
    使用oracle11g_instant_client来解决在不安装oracle客户端的情况下连接服务端
    Android系统中的6种模式
    现代汉语常用3500字
    debug1: Could not open authorized keys
    所选用户秘钥未在远程主机上注册
    directshow播放摄像头卡死问题
    linux设置静态IP
    gcc编译错误
    centos6.4编译gcc6.4
  • 原文地址:https://www.cnblogs.com/Ocean123123/p/11032716.html
Copyright © 2020-2023  润新知