一句話概括:就像玩撲克牌時,每來一張新牌都要選擇乙個合適的插入位置,**:迴圈從頭依次抽「新牌」,與位置較前的依次比較和插入 直到插入最合適的位置。
最差情況複雜度:o(n2),但是在資料近乎有序的時候甚至超過o(nlogn)
一、演算法
public void insertsort(int arry)
public static void sort(comparable arry)
}}}
輸出:
耗時:1 ms!
排序成功!
耗時:30143 ms!
排序成功!
差距恐怖。。。。
三、插入排序的改進
在之前給出**中應該可以發現乙個資料插入了很多次不同的地方,那麼這個點是可以改進的。四、插入排序在 資料越接近有序的時候 速度越快。因為內層迴圈會直接結束public static void sort(comparable arry)
arry[j]=target;//放到合適的位置
} }
很有實際意義,因為實際資料中大多數時候 資料都是有一定順序的只不過亂了很少的幾個要排序。
資料結構 2 排序演算法
常見的排序演算法 氣泡排序 選擇排序 插入排序 歸併排序 快速排序 堆排序 includeusing namespace std void swap int a,int i,int j 冒泡法 平均時間複雜度 o n 2 void bubblosort int a,int n void bubblo...
資料結構與演算法基礎 序
利用一段時間複習了一下基礎資料結構與演算法,包括鍊錶 棧 佇列 樹 排序等等。畫了好多草圖,寫了好多 覺得有些還是有以後參考的價值的,所以放在這裡。全部 使用標準c實現,除標準c庫以外,沒有使用任何系統相關庫或第3方庫。一些比較難懂的演算法操作有一些草圖,便於自己理解。所有 在winxp sp3 w...
資料結構與演算法(九)排序
演算法 時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好 空間複雜度 穩定性氣泡排序 o n 2 o n 2 o n o 1 穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定插入排序 o n 2 o n 2 o n o 1 穩定希爾排序 o nlogn o n 2 o n o 1...