資料結構 排序演算法

2021-09-01 16:16:32 字數 694 閱讀 9799

public static void bubblesort(int  arr)}}

}

優化:

方案:設定標誌位flag,如果發生了交換flag設定為true;如果沒有交換就設定為false,即:這一輪沒有發生交換,說明資料的順序已經排好,沒有必要繼續進行下去。

優化後的**:

public static void bubblesort1(int  arr)

}if(!flag) break;

}}

public static void select_sort(int array,int lenth)else}}

}

public static void quicksort(int a,int l,int r)

}//合併 :將兩個序列a[first-middle],a[middle+1-end]合併

public static void mergearray(int a,int first,int middle,int end,int temp)else

}

while(i<=m)

while(j<=n)

for(int ii=0;ii}

資料結構 排序演算法

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