並べ替え
以下の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))