Introdução ao método de classificação por inserção:
A classificação de plug-in pertence ao método de classificação interno, que consiste em encontrar a posição apropriada do elemento a ser classificado, a fim de atingir o objetivo de classificação.
Inserir ideia de ordenação:
A idéia básica da Classificação por inserção é tratar n elementos a serem classificados como uma lista ordenada e uma lista não ordenada.No início, a lista ordenada contém apenas um elemento e a lista não ordenada contém n-1 Elementos, cada vez que o primeiro elemento é retirado da lista não ordenada durante o processo de classificação, seu código de classificação é comparado sequencialmente com o código de classificação dos elementos da lista ordenada e é inserido na posição apropriada na lista ordenada. Torne-se uma nova lista ordenada.
Inserir diagrama de classificação:
Realização de concreto
Depois de ler a introdução anterior, acredito que você tenha um entendimento preliminar da classificação por inserção.Em nossas palavras, é quase o mesmo que a classificação por cartas de jogar. Primeiro, você precisa assumir a primeira posição como a posição de inserção. Em segundo lugar, você precisa comparar o número na segunda posição com o primeiro número.Se for menor que o primeiro número, você encontrará a posição de inserção e executará a operação de inserção.
import time
import random
arr = [0 for i in range(8000)]
for i in range(8000):
arr[i]=random.randint(0,8000)
#arr=[101,34,119,1]
print(arr)
def InsertSort(arr):
insertValue=0
insertIndex=0
for j in range(1,len(arr)):
#No1定义待插入的的数的下标和值
insertValue = arr[j] #变量定义不要循环内部
insertIndex = j-1
#No2寻找插入的位置
while insertIndex>=0 and insertValue < arr[insertIndex]:
#左移insertIndex
arr[insertIndex+1] = arr[insertIndex]#前面的数字后移
insertIndex -= 1#插入下标左移
#No3
if insertIndex + 1 != j:
arr[insertIndex+1] = insertValue
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
InsertSort(arr)
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
print(arr)
Resultado da operação
Se a quantidade de dados atingir 8000, a classificação levará 5 segundos. Se você ler meus outros blogs de classificação, descobrirá que a classificação por inserção é relativamente eficiente. Mas na verdade ele ordenou complexidade de tempo é O (n ^ 2), que é o pior caso, mas o número de palavras-chave e comparando o número de objectos em movimento, no caso em que uma média de cerca de n- 2 /. 4. Portanto, é preciso um tempo mais curto.