快速排序由氣泡排序演化而來
快速排序在每一輪挑選乙個基準元素 讓比他大的元素移動到數列的另一邊 比較小的元素移動到數列的一邊
這裡是使用了策略模式 把介面忽略就可以了
public
class
quicksort
comparable
>
implements
strategy
}private
static
comparable
>
void
quicksort
(t array,
int low,
int high)
}private
static
comparable
>
intgetindex
(t array,
int low,
int high)
//小的話 放左邊 當前的low的值變為high的值
array[low]
= array[high]
;//比基準值小 沒問題 放左邊 ++
while
(low < high && array[low]
.compareto
(temp)
<=0)
//一直到找到比基準值大的 high指向的值變為當前的low
array[high]
= array[low];}
//基準值所在位置 返回索引
array[low]
= temp;
return low;
}}
實現泛型介面 排序
實現泛型介面,排序 public class pricesrot icomparer endregion public class idsrot icomparer endregion 下面的 是呼叫 listbooklist new list booklist list booksinfomana...
泛型演算法 快速排序原始碼
好久沒寫這些底層演算法了,趁這個週末有空,順便實現了下。程式裡的指標是否為空都沒有判斷,畢竟這些玩意都是追求速度的嘛!如有不當之處請指出,歡迎討論!下面的程式在vs2008下測試通過,以下是執行結果 1.標頭檔案 myalgorithm.h ifndef myalgorithm h 13551534...
C 實現泛型選擇排序演算法
選擇排序 selection sort 是一種簡單直觀的排序演算法 它的工作原理是每一次從待排序的資料元素 中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。實現陣列元素的有序排列。假設有陣列 int arr 當我們首先進行第一趟排序,每次比較相鄰的兩個元素並把較大...