python php 氣泡排序

2022-06-11 11:12:07 字數 1113 閱讀 7004

#!/usr/bin/python

#coding=utf-8

def bubble_sort(li): #迴圈列表每次拿出乙個值,和列表中所有的值進行比較之後然後切換位置

for i in range(len(li)-1): #躺數迴圈 最後乙個數不用比較 已經是最大或者最小的數 所以躺數減少1

exchange = false #增加標識 以減少迴圈次數

for j in range(len(li)-i-1): # len(li)-i 表示列表中剩下的無序的列表。每比較一次 則剩下的列表長度減少i。無序列表躺數

if li[j] > li[j+1]: #第乙個數和第二個進行比較 如果第乙個數大於第二個數就進行交換(公升序)

# if li[j] < li[j+1]: 第乙個數小於第二個數就進行交換(降序)

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

exchange = true # 如果發生交換,那麼證明列表中還是有需要進行比較 即無序狀態

#print li

if not exchange: #如果沒有發生改變,那麼已經排序完畢,結束迴圈(對於不是非常混亂的列表,可以減少迴圈次數,節省時間,結束演算法即可)

return li

#氣泡排序 在為改進之前的時間複雜度是 o(n^2) 在改進之後【exchange = false #增加標識 以減少迴圈次數】最優情況為o(n)

li = [1,0,3,4,2,9,7,8,5]

print li

if __name__ == "__main__":

print bubble_sort(li)

_________

//氣泡排序 php

function bubble_sort($li)

} if (!$exchange)

} }$li = [1,0,3,4,2,9,7,8,5];

//$li = [1,2,3,4,5,6,7,8,9];

//echo search($li,10);

//echo binary_search($li,9);

var_dump( bubble_sort($li));

python php 快速排序

usr bin python coding utf 8 def partition li,left,rigth temp li left 獲取第乙個值假定為列表的中間值 while left rigth 如果中間值的左邊小於右邊 則說明比較的值左邊為空 則將值復還結束演算法 while left r...

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...

氣泡排序 氣泡排序法

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...