並べ替え
以下のpythonソースコードを
保存する。
[注意]
- 記号 # 以下の文字列は行末までpython処理系においては『無視され』、結果「comment]として扱われる。
- スクリプト内の文字列において日本語を正確に表示するた、えには、ファイル行頭で「#encoding: utf8」の記述が必要である(utf8は文字コード)。
ファイル名 sort.py のpythonスクリプトをMacOSで動作させるためには
$ python sort0.py
とする(プロンプト $ はユーザ環境に併せて理解する)。
並べ替えスクリプト(sort0.py)
#encoding: utf8
import random # 乱数モジュールを使う
# random.random() 0.0~1.0までのfloat値
# random.uniform(a,b) a~bまでのfloat値
# random.randint(a,b) a~bまでのint値
# バブルソート
a = []# リスト a を用意する
for i in range(0, 1000):
rnd = random.randint(0,10000)
# print rnd
a.append(rnd)# 乱数をリスト要素として追加する
#大きな添字(len(a)-1)から比較して上の方が大きいときは互いに入れ替え
for i in xrange(len(a)):
for j in xrange(len(a)-1, i, -1):
if a[j] < a[j-1]:
tmp = a[j]
a[j] = a[j-1]
a[j-1] = tmp
print a
並べ替えスクリプト(sort1.py)
#encoding: utf8
# バブルソート 2
import random # 乱数モジュールを使う
import time
# random.random() 0.0~1.0までのfloat値
# random.uniform(a,b) a~bまでのfloat値
# random.randint(a,b) a~bまでのint値
def bubble_sort(a_list):
for pass_number in range(len(a_list) - 1, 0, -1):
# print "pass = ", pass_number
#小さな添字(0と1)から比較して上の方が大きいときは入れ替え
for i in range(pass_number):
# print(a_list)
if a_list[i] > a_list[i + 1]:
temp = a_list[i]
a_list[i] = a_list[i + 1]
a_list[i + 1] = temp
n = input("整列するデータ数 = ")
a = []
for i in range(int(n)):
rnd = random.randint(0,1000)
# print rnd
a.append(rnd)# 乱数をリスト要素として追加する
#a = [54, 26, 93, 17, 77, 31, 44, 55, 20]
start = time.time() #開始時間
bubble_sort(a)
end = time.time() #終了時間
#print "sorted list"
#print(a)
print("Bubble sort of %d elements required %10.7f seconds" %(int(n), end-start))