選擇排序的scala實現

2021-09-01 17:46:56 字數 602 閱讀 2474

選擇排序的最基礎原理就是從乙個陣列中先找出乙個最大(或者最小)的數字,放入到新陣列的第一位,再從剩下的陣列中找出最大的數字,再依次填入,從演算法原理的角度看,這種排序是一種比較耗時的排序演算法,其執行時間為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對其...