python基礎程式設計之插入排序,氣泡排序,選擇排序

2021-12-30 04:14:58 字數 1359 閱讀 3014

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 遍歷後面的所有元素,尋找最小的值...