快速排序 泛型實現

2021-10-06 12:57:01 字數 923 閱讀 2535

快速排序由氣泡排序演化而來

快速排序在每一輪挑選乙個基準元素 讓比他大的元素移動到數列的另一邊 比較小的元素移動到數列的一邊

這裡是使用了策略模式 把介面忽略就可以了

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 當我們首先進行第一趟排序,每次比較相鄰的兩個元素並把較大...