Java 資料結構6 插入,選擇,氣泡排序演算法

2021-08-28 10:34:23 字數 1076 閱讀 6099

插入排序

直接插入排序基本思想是每一步將乙個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素為止。

private

static

void

insertionsort

(int

array)

//然後將其放到找到的位置上

array[j]

= temp;

}for

(int i =

0; i < array.length; i++

)}

選擇排序

選擇排序的思想就是從迴圈n次,第一次將角標0及其後元素中的最小值放在角標0處,第二次將角標1及其後元素中的最小值放在角標1處,以此類推,直至最後

private

static

void

selectsort

(int

array)}if

(i != min)

}for

(int i =

0; i < array.length; i++

)}

氣泡排序

氣泡排序的思想是比較相鄰的元素,如果第乙個比第二個大,就交換他們兩個位置,以前特喜歡氣泡排序,因為**簡單。。。

private

static

void

sbubblesort

(int

array)}}

for(

int i =

0; i < array.length; i++

)}

對於像這三種排序大家可以debug執行,一步步看看是如何交換資料的,就立馬能清楚了

冒泡、選擇、插入排序都需要 o(n2) 時間級別。一般不會選擇氣泡排序,雖然氣泡排序書寫簡單,但是平均效能是沒有選擇排序和插入排序好的。

選擇排序把交換次數降低到最低,但是比較次數還是挺大的。當資料量小,並且交換資料相對於比較資料更加耗時的情況下,可以應用選擇排序。

在大多數情況下,假設資料量比較小或基本有序時,插入排序是三種演算法中最好的選擇。

資料結構 排序總結 冒泡 插入 選擇 歸併

在我們看到,無論是氣泡排序,插入排序或者是選擇排序,時間複雜度都可能是是o n 2 為什麼這三種排序時間複雜度都有可能是n 2而二路歸併是o nlog n 讓我們先看看前三種排序方法 通過以上排序方式,我們都不難發現,這些排序其實是在做兩種事情,乙個是比較,乙個是按照比較的結果做出位置的變換.其中位...

冒泡,插入,選擇排序

經典的排序演算法,此文章介紹三個 氣泡排序 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。public void bubblesort int a while iswrap for int ...

資料結構與演算法(十) 冒泡 插入 選擇排序演算法

演算法基本思想 假設原始序列為l,長度為n 三種排序演算法的比較 import copy def bubblesort l,n 氣泡排序 每次選出最大元素放在末尾 l 待排序列表 n 列表長度 for i in range n flag false for j in range n i 1 if l...