Maison >développement back-end >Tutoriel Python >Exemple d'algorithme de tri par insertion directe implémenté en Python

Exemple d'algorithme de tri par insertion directe implémenté en Python

不言
不言original
2018-05-02 15:49:521729parcourir

Cet article présente principalement l'algorithme de tri par insertion directe implémenté en Python. Il analyse la définition et l'utilisation de l'algorithme de tri par insertion directe Python sous forme d'exemples. Le code est équipé de commentaires détaillés pour une compréhension facile. référez-vous à lui. Suivant

L'exemple de cet article décrit l'algorithme de tri par insertion directe implémenté en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

# -*- coding:utf-8 -*-
'''直接插入的python实现
  时间复杂度O(n**2) 空间复杂度O(1) 稳定
思想:先将前两个元素排序,第三个元素插入前面已排好序列,
    后面的元素依次插入之前已经排好序的序列
'''
author = 'Leo Howell'
L = [89,67,56,45,34,23,1]
def direct_insert_sort(numbers):
  for i in range(1,len(numbers)):
    #temp变量指向尚未排好序元素(从第二个开始)
    temp = numbers[i]
    #j指向前一个元素的下标
    j = i-1
    #temp与前一个元素比较,若temp较小则前一元素后移,j自减,继续比较
    while j>=0 and temp<numbers[j]:
      numbers[j+1]=numbers[j]
      j = j-1
    #temp所指向元素的最终位置
    numbers[j+1] = temp
if __name__==&#39;__main__&#39;:
  direct_insert_sort(L)
  print L

Résultats en cours d'exécution :

Connexe recommandé :

Explication détaillée de la recherche binaire et exemples de tri rapide en python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn