簡單排序 選擇 插入 氣泡排序

2021-06-22 17:36:21 字數 1466 閱讀 1135

3種順序排序方法。簡單排序是指時間複雜度為o(n^2)的排序方法。

1)選擇排序

將某個特定值有序的放置在最終位置上---外層迴圈控制最終位置的序號,內層迴圈從外層迴圈序號處向後遍歷,找到最小值。

2)插入排序

插入排序將某個特定值插入到值列的某個子集中,並重複該過程---外層迴圈控制要插入的資料(從第二個數到最後乙個),內層迴圈控制前面已排好序的的值後移。

3)氣泡排序

重複比較相鄰的兩個元素,並在必要的時候交換雙方位置。---外層迴圈控制每次冒泡到達的最終位置,內層迴圈交換元素

4)其他:這裡寫的是乙個通用的排序演算法,不光是對數值排序,可以對物件排序。物件實現comparable介面,物件就可以參與比較進行排序。

在對物件進行排序的方法中,就可以呼叫物件的public int compareto(object other)方法來比較物件的先後順序。

乙個可以比較先後順尋的student類(按照score大小順序):

class

student

implements

comparable

public

intcompareto(object other)

public

string tostring()

}

三種排序方法:

1

package

sort;23

public

class

******sort

2526

27//

選擇排序

28public

static

void

selectionsort(comparable data) 42}

4344

45//

插入排序

46public

static

void

insertsort(comparable data)

60data[position]

=key;61}

62}6364

65//

氣泡排序

66public

static

void

bubblesort(comparable data)80}

81}82}

8384

}

注意插入排序的內層迴圈開始寫成了這樣while(data[position-1].compareto(key) > 0 && position > 0),執行起來會導致陣列越界的異常。且表示式的判斷要把最先決條件放在前面,這一點容易忽略。

執行結果,將陣列重新排列了---

dd  64.32

bb  70.32

ff  74.32

gg  79.32

cc  85.32

aa  90.32

ee  91.32

簡單排序(選擇 冒泡 插入)

逆序對設a aa為乙個有n nn個數字的有序集 n 1n 1 n 1 其中所有數字各不相同。如果存在正整數i ii j jj使得1 i n1 leq i j leq n 1 in而且a i a j a i a j a i a j 則 a i a j a i a j a i a j 這個有序對稱為a的...

簡單排序 氣泡排序,插入排序,選擇排序

簡單排序 氣泡排序,插入排序,選擇排序 這些演算法思想是比較簡單的,執行速度也相對慢一些,不過,在某些情況下比那些複雜演算法實際上還要好一些,比如,對於小規模的檔案以及基本有序的檔案,插入演算法能比快速排序演算法更為有效。如何排序 1 比較兩個資料項 2 交換兩個資料想,或者複製其中的一項 氣泡排序...

簡單排序 插入排序 氣泡排序 選擇排序

1.基本思想 每一步將乙個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素為止。3.實現 public class insertionsorting for int i 1 i arr.length i 遍歷輸出排序好的陣列元素 for int i arr private stat...