演算法與資料結構基礎(二)排序基礎2 插入排序

2022-05-04 17:24:08 字數 664 閱讀 7961

一句話概括:就像玩撲克牌時,每來一張新牌都要選擇乙個合適的插入位置,**:迴圈從頭依次抽「新牌」,與位置較前的依次比較和插入 直到插入最合適的位置。

最差情況複雜度: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...