python 氣泡排序及優化版

2021-09-02 23:53:37 字數 974 閱讀 5685

#coding=utf-8

#氣泡排序

import random

print("氣泡排序")

print("隨機生成乙個列表")

list =

for i in range(8):

num = random.choice(range(100))

print(list)

print("氣泡排序後:")

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

for j in range(0+i,len(list)):

if (list[i]>list[j]):

list[i],list[j] = list[j],list[i]

print(list)

#coding=utf-8

#優化版氣泡排序

import random

print("優化版氣泡排序")

print("隨機生成乙個列表")

list =

for i in range(8):

num = random.choice(range(100))

print(list)

print("氣泡排序後:")

length = len(list)

flag = true 

while (flag and length>0):

flag = false

for i in range(length-1):

if(list[i]>list[i+1]):

list[i],list[i+1] = list[i+1],list[i]

flag = true

length -= 1

print(list)

最優情況下,優化版的時間複雜度為n ,普通版是n的平方

相同列表下,優化版會比普通版排序的更快些

氣泡排序優化版

優化 因為排序過程中,各元素不斷接近自己的位置如果一趟比較下來沒有進行交換,就說明序列有序,因此要在排序過程中設定乙個標誌flag判斷元素是否進行過交換。從而減少不必要的比較。實現 int arr int t 0 中間變數 boolean flag false 標誌當前迴圈是不是一次也沒進行交換,沒...

氣泡排序 python實現及優化

氣泡排序原理 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個 否則,位置不變。2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...

氣泡排序及優化

氣泡排序的基本思路是 每次將相鄰兩個數比較,將小的調到前頭 本例按照從小到大排序 按此規律如果有n個數,則要進行n 1趟比較。在第1趟比較中要進行n 1次兩兩比較,在第 j 趟比較中要進行 n j 次兩兩比較。實現如下 include define n 10 int main for i 0 i n...