1. 程式人生 > >java排序-插入排序-直接排序

java排序-插入排序-直接排序

   /**
     * 直接插入
     * 時間複雜度O(n^2)
     * 空間複雜度O(1)
     */
    @Test
    public void zjcrTest(){
        //原陣列,直接排序原陣列
        int[] data = new int[]{4,105,91,2,38,6,7,3,11,9};
        //初始化
        int temp;
        //在原陣列中一個一個的排序
        /**
         * 1、取出第二個元素,與前面所有的元素,也就是第一個進行比較,找出合適的位置插入進去
         * 2、取出第三個元素,與前面所有的元素反著進行比較,因為前面的已經排好,所以沒有找到相應的位置就會把元素向後移動,直到找到這個位置,留出空,插入進去
         * 3、遍歷整個陣列,把所有的全部進行排序,得到結果
         
*/ for (int i = 1; i < data.length; i++) { //建立一個即將插入陣列的數 temp=data[i]; int j; //元素向後移動,尋找temp能夠插入的位置 //data[j]>temp表示當找到這個位置的時候結束迴圈,也就是結束data中的元素的後移,為temp留出位置 for (j = i-1;j>=0 && data[j]>temp ;j--){ data[j
+1]=data[j]; } //插入temp data[j+1]=temp; } //輸出陣列 for (int i = 0; i < data.length; i++) { System.out.print(data[i]+","); } }