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次。
缺點:交換過於頻繁、甚至比氣泡排序還要多。
穩定排序法:遇相同值位置不交換。