資料結構演算法 排序

2021-10-05 10:18:40 字數 1536 閱讀 1019

1.氣泡排序實現

/// 

/// bubblesorter氣泡排序

/// n個元素的陣列

/// 第一輪排序:處理的陣列元素下標:0到n-1,鄰近兩個元素依次比較,將最大的元素放到陣列尾部,即陣列下標為n-1的位置;

/// 第二輪排序:處理的元素0到n-2個元素,進行第一輪的比較,將最大的元素放到陣列下標為n-2的位置,後續幾輪排序依次類推

/// 空間複雜度:o(1),平均時間複雜度:o(n^2),最好時間複雜度:o(n),最壞時間複雜度:o(n^2),穩定演算法,(排序之後,相同元素的在陣列中的相對位置保持不變,則該演算法為穩定演算法)

///

public

void

bubblesort

(int

args)

var flag =

false

;for

(int i =

0; i < args.length; i++)}

if(!flag)

}}

2.插入排序

/// 

/// 插入排序

/// 插入排序,第乙個元素預設是有序的,此時有序陣列包含第乙個元素,從第二個元素開始依次將後續

/// 元素插入到前面的有序陣列中,並保持新的陣列是有序的

/// 空間複雜度:o(1),平均時間複雜度:o(n^2),最好時間複雜度:o(n),最壞時間複雜度:o(n^2),穩定演算法

///

///

public

void

insertsort

(int

args)

for(

int i =

0; i < args.length; i++

)//執行最後一次j減了1,所以要再加1

args[j +1]

= element;

}}

3.選擇排序

/// 

/// 選擇排序

/// 選擇陣列中最小的乙個元素放到陣列第乙個位置,除陣列第乙個元素外,挑選陣列中剩餘的最小的數放到陣列的第二位置,除陣列第一,二個元素外,

/// 挑選陣列中剩餘的最小的數放到陣列的第三個位置,依次類推

/// 空間複雜度:o(1),平均時間複雜度:o(n^2),最好時間複雜度:o(n^2),最壞時間複雜度:o(n^2),穩定演算法

///

///

public

void

selectsort

(int

args)

for(

int i =

0; i < args.length; i++)}

var temp = args[i]

; args[i]

= args[element]

; args[element]

= temp;

}}

資料結構 排序演算法

include include define maxitem 100 typedef char keytype 5 typedef int elemtype typedef struct rec elemnode maxitem 氣泡排序演算法 void bubblesort elemnode r,...

資料結構 排序演算法

排序演算法分為內部排序和外部排序兩大類。內部排序 在計算機記憶體中完成的排序演算法 外部排序 不能再記憶體中文完成,必須在磁碟或者磁帶上完成的排序演算法 內部排序是研究的重點問題,通常我們講的八大排序演算法也主要是講的內部排序演算法。排序演算法的穩定性和時間空間複雜度 本文重點介紹以下幾種排序演算法...

資料結構 排序演算法

直接插入排序是指將r i r n 插入到已經有序的r 1 r i 1 序列中。r 0 是乙個哨兵,起到作為邊界條件並作為暫存單元的作用。實際上,一切為簡化邊界條件而引入的附加節點 元素 均可稱為哨兵。例如單鏈表中的頭結點。對於有n個記錄的集合,要進行n 1趟排序。其最優時間複雜度是o n 平均時間複...