Random Sort

隨機 Random, 排序 Sort

打亂順序的方法

一、隨機放入陣列

優點:數字已經是未排序狀態。

缺點:數字會重複。

二、使用迴圈放入陣列

優點:可以控制數字順序, 依序放入陣列,數字不會重複。

缺點:必須再花時間將數字打亂。


[隨機 Random]

談到排序之前,先來看一下「隨機取亂數」Math.GetRandomNumber()。

括號內為整數n,意即隨機取1到n的整數(包含1或n)。

例如:Math.GetRandomNumber(10),取1~10其中一個整數。

※多次隨機取值重複機會大增,意思是第二次有可能與第一次重複。

範例:先以迴圈產生1~10的值,放入一個陣列變數Ran[]中。再以隨機方式取1~10,若第n次取到的值為m(1<=n,m<=10),則交換Ran[n]與Ran[m]的值。以取三次為例:

Q10-1_創意軌道抽籤

創意軌道編號1~9,隨機抽出4片軌道編號,請完成這隻抽籤程式。


排序 Sort

你會發現創意軌道抽籤程式,抽籤出的軌道號碼,並不一定是由小到大、由大到小,這時就應該排序一下,讓選手更容易、清楚地找出相對的軌道。

排序方法有很多種,資料量是選用哪種排序方式的依據,資料量越多、需要排序的時間就越久,因此你應該挑選排序次數越少越好的排序法,你要研究的是每一種排序方法的「走訪」以及「交換」次數的多寡,越少的效率越高、時間越短。

氣泡排序 Bubble Sort

優點:簡單易學。

缺點:交換次數過於頻繁,資料多的時候會造成效率下降;走訪也次數太多。∑_(k=1)^(n-1)▒((n-1)¦k)

隨機產生100個整數,存到陣列變數Array[],印出位排序前資料、排序之後再印出排序後資料。

穩定排序法:遇相同值位置不交換。

選擇排序法:

優點:改良氣泡排序交換過於頻繁的問題,可將n筆資料的搬移次數降至n-1次。

缺點:走訪次數太多。∑_(k=1)^(n-1)▒((n-1)¦k)

不穩定排序法:遇相同值會交換位置。

插入排序:

優點:改良氣泡排序走訪次數太多的問題,可將n筆資料的走訪次數降至n次。

缺點:交換過於頻繁、甚至比氣泡排序還要多。

穩定排序法:遇相同值位置不交換。