Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die Sortiermethoden für Python-Listen?

Was sind die Sortiermethoden für Python-Listen?

coldplay.xixi
coldplay.xixiOriginal
2020-09-11 13:34:5723074Durchsuche

Python-Listensortierung: 1. Blasensortierung ist ein einfacher Sortieralgorithmus. Er durchläuft wiederholt die zu sortierende Sequenz, vergleicht zwei Elemente gleichzeitig und tauscht sie aus, wenn sie in der falschen Reihenfolge sind Eine geordnete Sequenz, für unsortierte Daten, scannen Sie in der sortierten Sequenz von hinten nach vorne, suchen Sie die entsprechende Position und fügen Sie sie ein.

Was sind die Sortiermethoden für Python-Listen?

Verwandte Lernempfehlungen: Python-Tutorial

1. Blasensortierung

Bubble Sort (Bubble Sort) ist ein einfacher Sortieralgorithmus. Es durchläuft wiederholt das zu sortierende Array, vergleicht jeweils zwei Elemente und vertauscht sie, wenn sie in der falschen Reihenfolge sind. Die Arbeit des Durchlaufens des Arrays wird wiederholt, bis kein Austausch mehr erforderlich ist, was bedeutet, dass das Array sortiert wurde. Der Name dieses Algorithmus rührt von der Tatsache her, dass kleinere Elemente durch den Austausch langsam an die Spitze des Arrays „schweben“.

Was sind die Sortiermethoden für Python-Listen?

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. Insertion Sort

Insertion Sort ist ein einfacher und intuitiver Sortieralgorithmus. Es funktioniert, indem es eine geordnete Sequenz erstellt. Bei unsortierten Daten wird die sortierte Sequenz von hinten nach vorne durchsucht, um die entsprechende Position zu finden und einzufügen. Bei der Implementierung der Einfügesortierung müssen die sortierten Elemente während des Scanvorgangs von hinten nach vorne schrittweise nach hinten verschoben werden, um Einfügungsraum für die neuesten Elemente zu schaffen.

Was sind die Sortiermethoden für Python-Listen?

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. Selection Sort

Selection Sort ist ein einfacher und intuitiver Sortieralgorithmus. Sein Arbeitsprinzip ist wie folgt: Suchen Sie zuerst das kleinste (große) Element in der unsortierten Sequenz, speichern Sie es an der Startposition der sortierten Sequenz und suchen Sie dann weiter nach dem kleinsten (großen) Element aus den verbleibenden unsortierten Elementen. am Ende der sortierten Reihenfolge platziert. Und so weiter, bis alle Elemente sortiert sind.

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]

Zusammenfassung:

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;

Wenn Sie mehr über das Programmieren erfahren möchten, achten Sie bitte auf die Rubrik php-Schulung!

Das obige ist der detaillierte Inhalt vonWas sind die Sortiermethoden für Python-Listen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn