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 平均時間複...