20215開発ログ(8日目)-Phythonソートアルゴリズム(Bubbleソート)+MacBookデータ復旧放棄とフォーマット完了
1332 ワード
バブルソート昇順アルゴリズム
下図に示すように、隣接する要素を比較し、必要に応じて交換します.
(一連の比較&交換の過程をpassと呼ぶ.)
の上の図を見て、一番右の要素から比較することに注意してください.
x=[3,5,4,8,22,6,2]
n=len(x)
for i in range(n-1): #왼쪽에는 오름차순으로 차근차근 정렬이 되어감
for j in range(n-1, i, -1): #맨 오른쪽부터 비교하는 과정
if x[j] < x[j-1]:
x[j], x[j-1] = x[j-1], x[j]
print(x)
+アルゴリズム改良1:for文の内部でパス数を数え、関数を終了できるかどうかを判断する
passの変数として終了しますか?
x=[3,5,4,8,22,6,2]
n=len(x)
for i in range(n-1): #왼쪽에는 오름차순으로 차근차근 정렬이 되어감
passes = 0 #pass 횟수 0으로 지정
for j in range(n-1, i, -1): #맨 오른쪽부터 비교하는 과정
if x[j] < x[j-1] :
x[j], x[j-1] = x[j-1], x[j]
passes = passes +1 #pass가 일어나면 pass에 1을 더함
if passes == 0:
break
print(x)
+アルゴリズム改良2:最後のパスで発生した点(変数last)を用いて改良
x=[3,5,4,8,22,6,2]
n=len(x)
k=0
while k < n-1:
last= n-1
for j in range(n-1, k, -1):
if x[j] < x[j-1] :
x[j], x[j-1] = x[j-1], x[j]
last=j
k= last
print(x)
+最終MacBook…内蔵ハードディスク(HDD)データの保存を中止し、設定を再フォーマットします.初めてのような気持ちで頑張ってください!できる
Reference
この問題について(20215開発ログ(8日目)-Phythonソートアルゴリズム(Bubbleソート)+MacBookデータ復旧放棄とフォーマット完了), 我々は、より多くの情報をここで見つけました https://velog.io/@gojaegaebal/201214-개발일지8일차-파이썬-정렬-알고리즘버블-정렬-맥북-포기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol