アルゴリズム(選択ソート)
なっとくアルゴリズムの写経 p37
コメントを書き加えた
#小さいものから順に並べて、配列内の一番最小の値のインデックス番号を返す def findSmallest(arr): #最も小さい値を格納 smallest = arr[0] #最も小さい値のインデックスを格納 smallest_index = 0 for i in range(1, len(arr)): print(arr[i],i) if arr[i] < smallest: smallest = arr[i] smallest_index = i return smallest_index #選択ソート 配列をソートしてソートした配列を返す def selectionSort(arr): newArr = [] #配列に入ってる回数分中の関数を実行 for i in range(len(arr)): #配列内で最も小さい要素を見つけ出し smallest = findSmallest(arr) #新しい配列に追加 #popメソッド:指定した位置の要素を削除し、値を取得 #append:リストの最後に追加 newArr.append(arr.pop(smallest)) print(arr) print(newArr) return newArr print(selectionSort([5,3,6,2,10]))
ここが自分の中で??ってなったので例を載せておく
newArr.append(arr.pop(smallest))
#arr.pop(smallest)で一番小さい値のインデックスを削除した後に #newArrで入れている #例 #例 #arr:[5, 3, 6, 10] #newArr:[2] #↓ #arr:[5, 6, 10] #newArr:[2, 3] #↓ #arr:[6, 10] #newArr:[2, 3, 5] #↓ #arr:[10] #newArr:[2, 3, 5, 6] #↓ #arr:[] #newArr:[2, 3, 5, 6, 10]
美しい流れるような関数 こういうのを息を吸って吐くかのようにかけるようになりたい
- 作者: アディティア・Y・バーガバ,株式会社クイープ
- 出版社/メーカー: 翔泳社
- 発売日: 2017/02/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る