#バブルソート
#効果:ソート与えられた変数順序のn個
#入力:任意の配列A
#出力:配列Aの順に配置されています
#バブルソート処理
#最初の旅行:最後の桁から始まる参照として最初の番号、それとの比較に続いて、
それは#より大きい場合、スイッチは、次に前方の数を決定未満である場合
#旅を完了した後、このベンチマーク(つまり、最初の数)は、全ての最大の数であります
#第二のトリップ:それと比較し、続いて最後の桁から開始基準として第2の数に、
それは#より大きい場合、スイッチは、次に前方の数を決定未満である場合
#旅行を完了した後、参照番号(すなわち、第二の数)は、第1の最大以外の数であります
#そしてように、逆の順序でアレイを製造する、参照の最後の桁にまで
1 #この変形初期データは 2 A = [12,56,92、-1,5,110,92,999、-39,21,76,33,56 ] 。3 。4 プリント(' :初期データ' ) 5。 印刷(a)は、印刷(' \ N- '。* 1) #の印刷( '\ N-' * 1)空白行を意味し、出力のみ美的効果から 。6 N- = LEN(A) #N-持つ配列の長さを取得します 。7 I = 0 #の配列インデックスアウターループ 8のJ = 1-N - 。 #のループインデックス内のアレイ 9。 10 つつ I <= 1-N-。 : 11 ながら!J = I: 12である IF [J]> A [I]: 13である = TEMP A [I] 14 A [I]が= [J] 15 A [J] = TEMP 16 J = J - 1。 17。 他: 18は、 J = J - 1 。19 J = N - 1 #の次のサイクルから最終番号jを開始できるようにリセットJ、 20である 。私は= I + 1 #、サイクル後に、i番目が決定されています最大の残りの現在の数 21は、 印刷(a)の 22が 23である 印刷(' \ N- ' *。1 ) 24 プリント(「結果バブルソート:」) #のデータの逆の順序で出力される 25 プリント(A) 26は 27()A.reverse #Python関数は、逆来る 28 プリント(「逆方向データの後に採取し:" ) 29 印刷(A)
結果:
あなたの初期データ: [ 12、56、92、-1、5、110、92、999、-39、21、76、33、56 ] バブルは、結果の並べ替え: [ 999、110、92、92、76、56、56、33、21、12、5、-1、-39 ] 逆方向データをとった後: [ -39、-1、5、12、21、33、56、56、76、92、92、110、999]
アルゴリズムは、アレイAの具体的な実施プロセスを変更します。
前記下線の___各パス(各外側ループ)にダウンの数を決定する、ということです
1 [ 999、56、92、-1、5、110、92、76、-39、21、56、33、12 ] 2 [999、110、92、-1、5、92、76、56、 - 39、21、56、33、12 ] 3 [999、110、92、-1、5、92、76、56、-39、21、56、33、12 ] 4 [999、110、92、92、 5、76、56、56、-39、21、33、12、-1 ] 5 [999、110、92、92、76、56、56、33、-39、21、12、5、-1 ] 6 [999、110、92、92、76、56、56、33、-39、21、12、5、-1 ] 7 [999、110、92、92、76、56、56、33、-39 、21、12、5、-1] 8 [999、110、92、92、76、56、56、33、-39、21、12、5、-1 ] 9 [999、110、92、92、76、56、56、33、21、12、5、-1、-39 ] 10 [999、110、92、92、76、56、56、33、21、12、5、-1、-39 ] 11 [999、110、92、92 、76、56、56、33、21、12、5、-1、-39 ] 12 [999、110、92、92、76、56、56、33、21、12、5、-1、-39 ] 13 [999、110、92、92、76、56、56、33、21、12、5、-1、-39 ]
簡単に言えば、バブルソートは、メモリ順次ダウン、プレスを残りの最大数を見つけるための時間です。