• java实现插入排序


    • 插入排序

            将数组看成是两部分,前部分是有序的,后部分是无序的。将无序的数组逐个插入有序的数组中。

    java实现

    public int[] insertSort(int[] a){
            int len = a.length;
            for(int i=1;i<len;i++){
                int key = a[i];
                System.out.println("key:"+key);
                int j=i-1;
                while(j>=0&&a[j]>key){  //注意使用while,不要使用for
                    a[j+1]=a[j];
                    j--;
                }
                a[j+1]=key;
            }
            return a;
        }
    • 冒泡排序

      两个指针,循环2遍,时间复杂度O(n2)

      java实现

    public int[] bubbleSort(int[] a){
            for(int i=a.length-1;i>=0;i--){
                for(int j=0;j<i;j++){
                    if(a[j]>a[j+1]){  
                        int temp=a[j+1];
                        a[j+1]=a[j];
                        a[j]=temp;
                    }
                }
                //System.out.println("a:"+i+":"+a[i]);
            }
            return a;
    }

      那么书上经常说的最佳的情况下,时间复杂度是O(n),是怎么得来的呢?答案:是对代码进行了优化的,当在一次遍历的时候,若排列有序了,就终止下一次遍历。

    public int[] bubbleSort(int[] a){
            boolean didSwap = false;
            for(int i=a.length-1;i>=0;i--){
                for(int j=0;j<i;j++){
                    if(a[j]>a[j+1]){  
                        int temp=a[j+1];
                        a[j+1]=a[j];
                        a[j]=temp;
                        didSwap = true;
                    }
                }
                if(didSwap==false){
                   break;
                }
            }
            return a;
    }    
  • 相关阅读:
    gitLab、docker
    Spring源码分析
    Tomcat堆内存分析
    Kafka入门一
    Java NIO
    spring注解
    websocket即时通讯
    pycharm安装dlib库
    python+opencv人脸识别是否戴口罩
    2021年暑假周总结1
  • 原文地址:https://www.cnblogs.com/lxq0309/p/3655365.html
Copyright © 2020-2023  润新知