(Smalltalk) 氣泡排序

學了一陣子Smalltalk終於懂了。並發現原來Smalltalk是Erlang和Java的祖師。

| nums n order2 |
nums := #(4 2 3 7 3 1 5 6).
n := nums size.
order2 := [ :i :j || x y t |
 (i < j) ifTrue: [ x:=i. y:=j ] ifFalse: [ x:=j. y:=i ].
 {x. y}
 ].
1 to: n-1 do: [ :i |
 1 to: n-i do: [ :j || pair |
 pair := order2 value: (nums at: j) value: (nums at: (j+1)).
 nums replaceFrom: j to: j with: pair startingAt: 1.
 nums replaceFrom: j+1 to: j+1 with: pair startingAt: 2
 ]
].
nums
廣告

About 黃耀賢 (Yau-Hsien Huang)

熱愛 Erlang ,並且有相關工作經驗。喜歡程式語言。喜歡邏輯。目前用 Python 工作。
本篇發表於 Programming。將永久鏈結加入書籤。