1 インポートランダム 2 3。 4。 #元のバブルソート 5。 DEFのbubble_sort(NUMS): 6。 カウンタ= 0 7。 ための I における範囲(LEN(NUMS) - 1。) #このループは、バブルソートの回数を設定する責任がある 8。 ための J 中範囲(LEN(NUMS) - I - 1): #これは、0から開始し、底部が既に注文される各片道比較の数である 9。 IF NUMS [J]> NUMS [J + 1 :] 10 NUMS [ J]、NUMS [J + 1]はNUMS [J + 1 = ]、NUMS [J]を 11 対1 = + 12である プリント('照合時間:' 、カウンタ) 13が 戻りNUMS 14 15 16 #の最適化バブルソートを 17。 DEFのbubble_sort2(NUMS): 18は、 カウンタ= 0 19。 ための I における範囲(LEN(NUMS) - 1。 ): 20は ex_flag = Falseの#1 セットの交換フラグ、全く交換が全くまた、完了ソートしたことを示す、存在しない場合は 21がある ために J でレンジ(LEN(NUMS) - 1。 ): 22は IF [J + 1 NUMS [J]> NUMS ]: 23である NUMS [J]、NUMS [+ J. 1] = NUMS [J + 1 ]、NUMS [J] 24 カウンタ+ = 1 25 ex_flag = Trueの 26 なら ないex_flag: 27 休憩 28 プリント(' 比较次数' 、カウンタ) 29 リターンNUMS 30 31 DEF test_arr(カウント、限界): 32 ARR = [] 33 のための I における範囲(カウント): 34 arr.append(random.randint(1 、限界)) 35 リターンARR 36 37 38 なら __name__ ==' __main__ ' : 39 ARR = test_arr(100、100 ) 40 ARR2はtest_arr =(100、100 ) 41れる プリント(' ソート前バブル' 、ARR) 42である ARR = bubble_sort(ARR) 43は、 プリント(' バブルソート' 、ARR) 44は、 プリント(' -------------------- ' ) 45 プリント(' の前にバブルソート' 、ARR2がある) 46である ARR2が=あるbubble_sort(ARR2がある) 47 を印刷(「バブルソート後」、ARR2)があります