見出し画像

ちょっとアルゴニズム - Selection Sort(Swift)

選択ソートは配列の最小値(最大値)を持つ要素を探して、それを配列の先頭要素と交換することで整列を行うアルゴリズムです。

ということで先頭の数字と他の数字を比較して数字を条件によって数字を入れ替えるという感じで後ろにずらしていくというとで最後まで繰り返します。

コードは添字を使って配列の値を指定して計算を進めています。

小さいものを見つけて、入れ替えるという仕掛けです。


func selectionSort(_ array:[Int])->[Int]{
   guard array.count > 1 else{
       return array
   }
   
   var a = array
   
   for x in 0 ..< a.count - 1{
       var lowest = x
       for y in x + 1..<a.count{
           if a[y] < a[lowest]{
               lowest = y
           }
       }
       
       if x != lowest{
           a.swapAt(x, lowest)
       }
   }
   return a
   
}


guard array.count > 1 else{
return array
}

で2個以上の数字があるときにソート、並び替えします。

ループで繰り返しをします。

var lowest = x

添字に変数"x"を入れて配列の値を指定します。それを最小の数値に見立てて、他の数値と比べていきます。比較してもし他の数値が小さかったら入換します。この場合左の数値から比較して、決定して、次に今比較した右の数値に移って、また同じことを繰り返します。

図示してみます。

画像1



いいなと思ったら応援しよう!