2010年7月31日土曜日

[Squeak] ボゴソート?

同僚にボゴソートというのいうソート?があるのを聞いたので,作ってみた.
説明を受けた通りに実装したみた.

合っているのかよくわからない・・・.
最悪計算量,無限大ってどうなんでしょうね.

Transcript clear.
x := 10.
box := Array new:x.
1 to:x do:[:v | box at:v put: (1 to: 100) atRandom].
box do:[:v |Transcript show:v; show:Character space. ].
Transcript cr.
c := 1.
counter := 1.
[box size = counter] whileFalse:[
  counter := 1.
  box := box shuffle.
  2 to: box size do:[:i | 
    ((box at: i -1) < (box at: i) )
         ifTrue:[ counter := counter + 1]
  ].
 c := c + 1.
].

box do:[:v |Transcript show:v; show:Character space. ].
Transcript cr;show:'loop counter='; show:c; cr.

ソートとよべるのか? これは,奇跡を待つだけのソートだと思う.

0 件のコメント:

コメントを投稿