插入排序
列表被分為有序區和無序區兩個部分,最初有序區只有乙個元素
每次從無序區選擇乙個元素,插入到有序區的位置,直到無需去變空
# -*- 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 氣泡...