ホームページ  >  記事  >  バックエンド開発  >  Pythonのリストソート方法とは何ですか?

Pythonのリストソート方法とは何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-09-11 13:34:5723007ブラウズ

Python リスト ソート: 1. バブル ソートは単純なソート アルゴリズムです。ソート対象のシーケンスを繰り返し走査し、一度に 2 つの要素を比較し、順序が間違っている場合はそれらを入れ替えます。2. 挿入並べ替えは、順序付けされたシーケンスを構築することにより、並べ替えられていないデータの場合、並べ替えられたシーケンス内で後ろから前にスキャンし、対応する位置を見つけて挿入します。

Pythonのリストソート方法とは何ですか?

#関連する学習の推奨事項:

Python チュートリアル

1. バブルソート

バブル ソートは、単純な並べ替えアルゴリズムです。ソート対象の配列を繰り返し処理し、一度に 2 つの要素を比較し、順序が間違っている場合はそれらを交換します。配列を走査する作業は、交換が必要なくなるまで繰り返されます。これは、配列がソートされたことを意味します。このアルゴリズムの名前は、小さい要素がスワッピングによって配列の先頭にゆっくりと「浮動」するという事実に由来しています。

Pythonのリストソート方法とは何ですか?

def bubble_sort(list):
    n = len(list)
    for i in range(n - 1):
        for j in range( 0,n - 1 - i):
            if list[j] > list[j + 1]:
                list[j], list[j + 1] = list[j + 1], list[j]
        # if list[i] > list[i + 1]:
        #     list[i], list[i + 1] = list[i + 1], list[i]
    print(list)
list=[2,4,6,8,1,3,5,7,9]
bubble_sort(list)
#结果:[1,2,3,4,5,6,7,8,9]

2. 挿入ソート

挿入ソートは、シンプルで直感的な並べ替えアルゴリズムです。これは、順序付けされたシーケンスを構築することで機能し、並べ替えられていないデータの場合は、並べ替えられたシーケンス内で後ろから前にスキャンし、対応する位置を見つけて挿入します。挿入ソートの実装では、後ろから前へのスキャン プロセス中に、ソートされた要素を徐々に後方に移動して、最新の要素に挿入スペースを提供する必要があります。

Pythonのリストソート方法とは何ですか?

def insertion_sort(list):
  n = len(list)
  for i in range(1, n):
    for j in range(i, 0, -1):
      if list[j] < list[j - 1]:
        list[j], list[j - 1] = list[j - 1], list[j]
      else:
        break
  print(list)
insertion_sort([3,0,2,5,8,5,9,41,0,1,6])
#结果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]

3. 選択ソート

選択ソートは、シンプルで直感的な並べ替えアルゴリズムです。その動作原理は次のとおりです。まず、ソートされていないシーケンス内で最小の (大きい) 要素を見つけ、それをソートされたシーケンスの開始位置に格納し、その後、ソートされていない残りの要素から最小の (大きい) 要素を探し続けます。ソートされたシーケンスの最後に配置されます。すべての要素がソートされるまで続きます。

def selection_sort(list):
    n = len(list)
    for i in range(0, n -1):
        min_index = i
        for j in range(i + 1, n):
            if list[min_index] > list[j]:
                min_index = j
        if i != min_index:
            list[min_index], list[i] = list[i], list[min_index]
    print(list)
selection_sort([5,9,6,42,9,4,66,2,3,0,1])
#结果:0, 1, 2, 3, 4, 5, 6, 9, 9, 42, 66]

概要:

import random
# 随机生成1-1000之间无序序列整数数据
def generator():
    random_data = []
    for i in range( 0, 10 ):
        random_data.append( random.randint( 1, 1000 ) )
    return random_data
# 冒泡排序
def bubble_sort(list):
    # 序列长度
    n = len( list )
    for i in range( 0, n ):
        for j in range( i , n ):
            if list[i] > list[j]:
                list[i], list[j] = list[j], list[i]
    return list
 # 选择排序
def selection_sort(list):
    n = len(list)
    for i in range(0, n -1):
        min_index = i
        for j in range(i + 1, n):
            if list[min_index] > list[j]:
                min_index = j
        if i != min_index:
            list[min_index], list[i] = list[i], list[min_index]
    return list
#插入排序
def insertion_sort(list):
  n = len(list)
  for i in range(1, n):
    for j in range(i, 0, -1):
      if list[j] < list[j - 1]:
        list[j], list[j - 1] = list[j - 1], list[j]
      else:
        break
  return list
if __name__ == "__main__":
    # 生成随机无序数据
    list = generator()
    # 打印无序数据
    print( &#39;随机生成的无序数据:&#39;,list )
    # 冒泡排序
    sorted_data = bubble_sort( list )
    #插入排序
    insertion_data=insertion_sort(list)
    #选择排序
    selection_data=selection_sort( list )
    # 打印排序结果
    print( &#39;冒泡排序:&#39;,sorted_data )
    print( &#39;插入排序:&#39;, insertion_data )
    print( &#39;选择排序:&#39;, selection_data )
&#39;&#39;&#39;
结果:
随机生成的无序数据: [300, 517, 591, 209, 204, 789, 417, 739, 803, 393]
冒泡排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
插入排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
选择排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
&#39;&#39;&#39;

プログラミング学習について詳しく知りたい場合は、

php training 列に注目してください。

以上がPythonのリストソート方法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。