選擇排序的最基礎原理就是從乙個陣列中先找出乙個最大(或者最小)的數字,放入到新陣列的第一位,再從剩下的陣列中找出最大的數字,再依次填入,從演算法原理的角度看,這種排序是一種比較耗時的排序演算法,其執行時間為o(n^2)。
首先定義乙個找出乙個陣列中最小數字的方法:
import scala.collection.mutable.
def findsmallest(array:buffer[int]):int =
}smallest_index
}
其中方法的取值取buffer,主要為了便於後面進行刪除取值操作方便。
排序方法:
def selectionsort(array:array[int]):array[int] =
targetarray.toarray
}
最終實現:
val array = array(3,4,6,5,1,2)
selectionsort(array)
//res25: array[int] = array(1, 2, 3, 4, 5, 6)
快速排序 基於scala實現
快速排序由於排序效率在同為o n logn 的幾種排序方法中效率較高,因此經常被採用,再加上快速排序思想 分治法也確實實用.快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 該方法的基本思想...
堆排序 基於scala實現
堆排序 heapsort 是指利用堆這種資料結構所設計的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質 即子結點的鍵值或索引總是小於 或者大於 它的父節點。堆排序可以說是一種利用堆的概念來排序的選擇排序。分為兩種方法 大頂堆 每個節點的值都大於或等於其子節點的值,在堆排序演算法...
用scala實現快速排序
author 孤星魅影 乙個簡單的整型陣列快速排序 scala大部分符號都是左結合,只有 的連線符是右結合,a b c 相當於a b c 它會優先執行冒號右邊的表示式。def sortint arr array int array int 乙個完整的快速排序的方法 可以傳入任意型別的buffer對其...