目次
前
次
ソートシミュレーション(Python)
数列を、昇順あるいは降順に並べ替える、ソートは
アルゴリズム事典に掲載されています。
センサーで時系列に取得した情報を、ソートし
どの時点のデータかを参照できるようにします。
スクリプト言語Pythonで、センサーの情報をランダムに
生成し、降順に並べるスクリプトは、以下。
import random
# generate value
xr = []
for e in range(0,7) :
xx = int(random.uniform(10, 30))
xr.append([xx,e+1])
print(xr)
# sort
for e in range(0,7) :
for f in range(0,7) :
ee = xr[e]
ff = xr[f]
caree = ee[0]
carff = ff[0]
if carff < caree :
xr[e] = ff
xr[f] = ee
print(xr)
乱数で生成した情報は、以下。
[[24, 1], [29, 2], [17, 3], [29, 4], [25, 5], [27, 6], [20, 7]]
リスト中の各要素は、センサー値、取得順序番号で
1組にしてリストでまとめてます。
連想配列を使えるプログラミング言語なら、連番と
数値の組み合わせにもできますが、ソートが主体
なので、リストのままとします。
数値と取得順序をリストでまとめたので、2重ループで
ソートするため、アルゴリズムは以下。
隣接する2組の要素を、含まれる数値と数値で比較。
大小関係があれば、組ごと交換する。
スクリプトを実行すると、次のようにソートができます。
[[24, 1], [29, 2], [17, 3], [29, 4], [25, 5], [27, 6], [20, 7]]
↓
[[29, 2], [29, 4], [27, 6], [25, 5], [24, 1], [20, 7], [17, 3]]
問題なくソートされています。
降順、昇順の使い分けは、不等号の向きを変えるだけで
済ませられるので、spreadsheetよりも簡単に変更可能と
なっています。
目次
前
次