1.插入排序流程圖:
#插入排序
#從第二個數開始比較,把它的值儲存為value
#while迴圈從i-1的位置開始逐步遞減和value比較,
#在找到第乙個小於value的值時,將該位置的後乙個位置的值賦值為value
#在賦值之前,所有位置依次後移一位
mylist=[5,2,4,6,1,3]
for i in range(1,len(mylist)):
value=mylist[i]
j=i-1
while( j>=0 and mylist[j]>value):
mylist[j+1]=mylist[j]
j=j-1
mylist[j+1]=value
print(mylist)
[1, 2, 3, 4, 5, 6]2.氣泡排序
氣泡排序的思想: 每次比較兩個相鄰的元素, 如果他們的順序錯誤就把他們交換位置
氣泡排序原理: 每一趟只能將乙個數歸位, 如果有n個數進行排序,只需將n-1個數歸位, 也就是說要進行n-1趟操作(已經歸位的數不用再比較)
def bubblesort(nums):
for i in range(len(nums)-1): # 這個迴圈負責設定氣泡排序進行的次數
for j in range(len(nums)-i-1): # j為列表下標
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
nums = [5,2,4,6,1,3]
print (bubblesort(nums))
3.選擇排序
選擇排序注意點(假設第一層迴圈變數為:i;第二層迴圈變數為:j):
[0,i-1]是已經排序好的元素。
定義乙個變數,用來記錄本次迴圈下找到的最小元素的下標。
第二層迴圈是從[i,length -1]中找到最小元素的下標,用來與i元素交換
a = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
print(a)
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i]>a[j]:
a[i],a[j]=a[j],a[i]
print(a)
[3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
基礎排序 插入排序
插入排序 二個序列,一號序列放的是有序序列,二號序列是無序的,最終的目的是要一號序列是二號序列排好的樣子 首先一號序列是空的,那就取乙個數從二號序列中然後放到一號中,總所周知,乙個數的序列肯定是有序的,然後繼續執行這個操作,從二號序列中取乙個數放到一號序列的後面,你要保證的是一號序列在放下乙個數之前...
Python程式設計 排序演算法之插入排序
插入排序 列表被分為有序區和無序區兩個部分,最初有序區只有乙個元素 每次從無序區選擇乙個元素,插入到有序區的位置,直到無需去變空 coding utf 8 file insert sort demo.py date 2018 06 11 import random 插入排序 o n 2 defins...
python 插入排序
coding utf 8 def insertsort list list 4,1,9,13,34,26,10,7,4 m len list 元素個數 for i in range m 對每乙個元素 min i 當前元素索引 for j in range i 1,m 遍歷後面的所有元素,尋找最小的值...