Revisão do algoritmo de classificação (implementação em Python)
Selecionar classificação
def selection_sort(arr):
"""
选择排序
:param arr:
:return:sorted list
"""
length = len(arr)
for i in range(length - 1):
min_index = i
"""
从min_index 到 最终 选择最小的,插入到前面已排序的尾部
"""
# 寻找未排序列表之中最小的
for j in range(min_index, length):
if arr[min_index] > arr[j]:
min_index = j
# 找到未排序列表最小值之后与未排序列表第一个进行交换,此时最小值加入到前面已排序部分
arr[i], arr[min_index] = arr[min_index], arr[i]
Selecione classificação para dividir a lista pela frente: lista classificada, traseira: lista não classificada, insira a menor lista não classificada na parte traseira, insira-a no final da lista classificada na frente e repita várias vezes para classificar a lista inteira.
Selecionar classificação
def insert_sort(arr):
length = len(arr)
for i in range(1, length):
# 此时i为未排序列表第一个
"""
将该元素与前面已排序的列表比较,如果该元素比前一个元素大,则加交换位置(前移)
"""
for j in range(i, 0, -1):
if arr[j] < arr[j - 1]:
arr[j], arr[j - 1] = arr[j - 1], arr[j]
return None
A idéia principal do algoritmo de classificação por inserção é comparar os seguintes elementos com os elementos anteriores, inseri-los na frente e repetir várias vezes para formar uma lista classificada.