演算法1 排序LowB三人組

2022-08-15 02:33:13 字數 1705 閱讀 5536

import

random

from timewrap import *@cal_time

defbubble_sort(li):

for i in range(len(li) - 1):

#i 表示趟數

#第 i 趟時: 無序區:(0,len(li) - i)

for j in range(0, len(li) - i - 1):

if li[j] > li[j+1]:

li[j], li[j+1] = li[j+1], li[j]

@cal_time

defbubble_sort_2(li):

for i in range(len(li) - 1):

#i 表示趟數

#第 i 趟時: 無序區:(0,len(li) - i)

change =false

for j in range(0, len(li) - i - 1):

if li[j] > li[j+1]:

li[j], li[j+1] = li[j+1], li[j]

change =true

ifnot

change:

return

li = list(range(10000))

#random.shuffle(li)

#print(li)

bubble_sort_2(li)

print(li)

冒泡

import

random

from timewrap import *@cal_time

defselect_sort(li):

for i in range(len(li) - 1):

#i 表示趟數,也表示無序區開始的位置

min_loc = i #

最小數的位置

for j in range(i + 1, len(li) - 1):

if li[j]

min_loc =j

li[i], li[min_loc] =li[min_loc], li[i]

li = list(range(10000))

random.shuffle(li)

print

(li)

select_sort(li)

print(li)

選擇

import

random

from timewrap import *@cal_time

definsert_sort(li):

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

#i 表示無序區第乙個數

tmp = li[i] #

摸到的牌

j = i - 1 #

j 指向有序區最後位置

while li[j] > tmp and j >=0:

#迴圈終止條件: 1. li[j] <= tmp; 2. j == -1

li[j+1] =li[j]

j -= 1li[j+1] =tmp

li = list(range(10000))

random.shuffle(li)

print

(li)

insert_sort(li)

print(li)

插入

排序演算法之low B三人組

列表排序 將無序列表變成有充列表 應用場景 各種榜單,各種 給二分法排序使用,給其他演算法使用 輸入無序列表,輸出有序列表 公升序或降序 排序low b三人組 首先,列表每兩個相鄰的數做比較,如果前邊的數比後邊的數大,那麼交換這兩個數 def bubble sort l1 for i in rang...

lowB三人組演算法 氣泡排序 選擇排序 插入排序

時間複雜度 o n2 演算法穩定 實現點 時時比較,時時交換 def bubble sort li for i in range len li 1 第i趟 exchange false for j in range len li i 1 if li j li j 1 li j li j 1 li j...

演算法3(low B三人組)

首先,列表每兩個相鄰的數,如果前邊的比後邊的大,那麼交換這兩個數 時間複雜度 o n2 def bubble sort lis 氣泡排序 param lis 無序列表 return 有序的從小到大的列表 for i in range 0,len lis 1 可能存在列表已經排好的情況,加標記 exc...