用scala實現快速排序

2021-09-28 18:46:29 字數 771 閱讀 4993

/**

* @author 孤星魅影

* 乙個簡單的整型陣列快速排序**

* scala大部分符號都是左結合,只有:的連線符是右結合,a:b+c 相當於a:(b+c),它會優先執行冒號右邊的表示式。

*/def sortint

(arr:array[int]

):array[int]

=/**

* 乙個完整的快速排序的方法

* 可以傳入任意型別的buffer對其排序後返回

* 可以傳入乙個比較器對自定義型別排序

* * @author 孤星魅影

* @param buffer 任意型別的buffer

* @param isasc 是否正序排序

* @param ev 自定義比較器

* @return 返回乙個快速排序後的buffer

*/def quicksort[t: classtag]

(buffer: mutable.buffer[t]

)(implicit isasc: boolean =

true

, ev: t =

> comparable[t]

): mutable.buffer[t]=)

quicksort

(left)

+= buffer.head ++

=quicksort

(right)

}

快速排序 基於scala實現

快速排序由於排序效率在同為o n logn 的幾種排序方法中效率較高,因此經常被採用,再加上快速排序思想 分治法也確實實用.快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 該方法的基本思想...

Scala 說說快速排序

簡短的幾行 就完成了快速排序 def qsort list int list int 這幾行 很美,美不勝收。我喜歡把這種風格裡定義的sqort叫做物件,函式物件 它的型別是list int list int 這是個函式型別,接受乙個list int 引數,返回乙個list int 結果 模式匹配的...

用棧實現快速排序

include include include include include include 快速排序 一次劃分過程 int partation int arr,int low,int high 返回值為low與high相等時的下標 if low high else while low 從前往後找...