排序演算法 插入排序 python

2021-08-07 06:53:47 字數 995 閱讀 8943

對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入

插入排序在實現上,在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

#!/usr/bin/env python

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

# created by xuehz on 2017/8/22

definsert_sort

(alist):

n = len(alist)

# 從右邊的無序 序列中取出多少個元素執行此過程

for j in range(1, n):

# i 表示內層迴圈起始值

i = j

# 執行從右邊的無序序列中取出第乙個元素:i 位置的元素 然後將其插入到前面的有序 序列中

while i > 0:

if alist[i] < alist[i-1]:

alist[i] , alist[i - 1] = alist[i - 1], alist[i]

i -= 1

else:

break

return alist

definsert_sort1

(alist):

# 從第二個位置,即下標為1的元素開始向前插入

for i in xrange(1, len(alist)):

for j in xrange(i, 0, -1): # 從第i個元素開始向前比較,如果小於前乙個元素,交換位置

if alist[j] < alist[j - 1]:

alist[j], alist[j - 1] = alist[j - 1], alist[j]

return alist

if __name__ == '__main__':

li = [52,32,98,07,67]

print li

print insert_sort1(li)

Python插入排序演算法

插入排序 英語 insertion sort 是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。插入排序 n len alist...

python 插入排序演算法

描述 插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o n 2 是穩定的排序方法。插入演算法把要排序的陣列分成兩部分 第一部分包含了這個陣列的所有元素,但將最後乙個元素除外 讓陣列多乙個空間才有插入的位置 ...

Python演算法 插入排序

插入排序 英語 insertion sort 是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in place排序 即只需用到o 1 的額外空間的排序 因而在從後向前掃瞄過程中,需要反覆把已排序元素...