Python程式設計 排序演算法之插入排序

2021-08-20 16:11:58 字數 694 閱讀 4106

插入排序

列表被分為有序區和無序區兩個部分,最初有序區只有乙個元素

每次從無序區選擇乙個元素,插入到有序區的位置,直到無需去變空

# -*- coding: utf-8 -*-

# @file : insert_sort_demo.py

# @date : 2018-06-11

import random

# 插入排序 o(n^2)

definsert_sort

(lst):

count = 0

for i in range(1, len(lst)):

tmp = lst[i]

j = i - 1

while j >=0

and tmp < lst[j]:

lst[j+1] = lst[j]

j -= 1

count += 1

lst[j+1] = tmp

print("count: %s"% count)

lst = list(range(10))

random.shuffle(lst)

insert_sort(lst)

print(lst)

# count: 20

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

排序演算法之插入排序Python

介紹一種新的排序演算法,插入排序。先想想一下在玩撲克牌時的動作,當剛開始發完牌時,每個人都需要整理手中的牌,那麼我們排序時,就需要從亂序中的牌中拿出一張牌,將這張牌和已經排好序的牌進行比較,從而放到正確的位置。以此類推,直到排好所有的牌。比如,手中有5張牌,無序。首先從這五張牌中隨便拿出一張,因為最...

Python排序演算法之插入排序

插入排序的工作原理是,對於每個未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。步驟 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果被掃瞄的元素 已排序 大於新元素,將該元素後移一位 重複步驟3,直到找到已排序的元素小於或者等於新元素的...

Python程式設計 排序演算法之氣泡排序

列表排序 常見的排序演算法 名稱時間複雜度 空間複雜度 氣泡排序 o n 2 o 1 選擇排序 o n 2 o 1 插入排序 o n 2 o 1 快速排序 mid堆排序 high 歸併排序 high 基數排序 少見希爾排序 少見桶排序少見 排序演算法關鍵點 氣泡排序 import random 氣泡...