備戰2015筆試之一直接插入排序

2021-06-25 19:23:57 字數 547 閱讀 8262

/*

直接插入排序的思路:將初始序列分為有序部分和無序部分兩個序列。初始時有序序列為第乙個元素

過程是:每次將無序部分的第乙個元素拿出來與前面有序部分的最後乙個元素比較,直到第乙個位置或者遇到

前面的元素比這個元素大,本次排序結束。

時間複雜度分析:考慮最壞的情況:初始時第乙個元素不用比較,從第二個元素開始有2種可能,即比第乙個元素大或者小直觀的

講就是在第乙個元素的左邊或者右邊,這就和排列很像了。依次類推可以得出第i趟排序時有i種可能性,於是

可以得出總的可能性為[n(n+1)]/2.即直接插入排序的時間複雜度為o(n^2).

考慮最好的情況,即每一趟排序僅比較一次的可能性即第i趟排序時第i個元素大於第i-1個元素。此時為

o(n)

平均複雜度為o(n^2)

*/public class insertsort

; int i,j,temp;

for(i=1;i0 && tempa[j+1] = temp;

} for(i=0;i}}

基本演算法之一 直接插入排序

package com.wang.demo 插入排序 基本思想 每步將乙個待排序的記錄,從後到前為這個元素找到乙個合適的位置 author xiaoezi public class insertsort system.out.println paixu int mm sortarray arr fo...

排序演算法之一 直接插入排序

直接插入排序中加入了附加記錄,又稱監視哨或者哨兵。哨兵的主要作用 進人查詢 插入位置 迴圈之前,它儲存了r i 的副本,使不致於因記錄後移而丟失r i 的內容 它的主要作用是 在查詢迴圈中監視下標變數j是否越界。一旦越界 即j 0 因為r 0 可以和自己比較,迴圈判定條件不成立使得查詢迴圈結束,從而...

排序 一 直接插入排序

1 直接插入排序 1 定義 直接插入排序 straight insertion sort 是一種最簡單的排序方法。它的基本操作是將乙個記錄插入到乙個長度為m 假設 的有序表中,使之仍保持有序,從而得到乙個新的長度為m 1 的有序表。2 演算法思路 設有一組關鍵字 k 1 k 2 k n 排序開始就認...