Python演算法入門 第1章 2,氣泡排序

2021-08-30 15:14:12 字數 802 閱讀 3121

class solution():

'''氣泡排序

從大到小排序

'''def maopao(self,x):

#有多少數字,迴圈多少次

for i in range(len(x)):

#依次讀取列表x裡面的資料,並與下乙個數進行比較

for j in range(len(x)-1):

#如果小於下乙個數,就將兩個數交換位置

if x[j] < x[j+1]:

x[j], x[j+1] = x[j+1], x[j]

return x

if __name__ == "__main__":

a = solution()

print(a.maopao([1,2,3,4,5,6,7]))

下面附上《啊哈!演算法》的c語言實現:

#include int main()

{ int a[100],i,j,t,n;

scanf("%d",&n); //輸入乙個數n,表示接下來有n個數

for(i=1;i<=n;i++) //迴圈讀入n個數到陣列a中

scanf("%d",&a[i]);//氣泡排序的核心部分

for(i=1;i<=n-1;i++) //n個數排序,只用進行n-1趟

{for(j=1;j<=n-i;j++) //從第1位開始比較直到最後乙個尚未歸位的數,想一想為什

麼到n-i就可以了。

{if(a[j]其實python完全不用這麼麻煩,乙個sort函式就可以完成排序,而且氣泡排序極大地浪費了時間。 

Python演算法入門 第1章 1,桶排序

假如你有7個數需要排序,最大的數為100,那麼你就需要101個桶,桶的編號為0 100。你的數列中的數是多少,就往對應的桶裡面加一,最後按照順序列印桶的編號即可。但此排序方式浪費資源極大,資料量大的時候不建議使用,本文只是介紹最基本的演算法實現原理,作為入門使用。class solution 對輸入...

Python演算法入門 第2章 2 1,棧 習題

以下問題節選自 啊哈!演算法 作者 的傳送門 啊哈磊的官方 啊哈論壇,星期天小哼和小哈約在一起玩桌遊,他們正在玩乙個非常古怪的撲克遊戲 小貓釣魚 遊戲的規則是這樣的 將一副撲克牌平均分成兩份,每人拿乙份。小哼先拿出手中的第一張撲克牌放在桌上,然後小哈也拿出手中的第一張撲克牌,並放在小哼剛打出的撲克牌...

Python演算法入門 第1章 3,去重排序

去掉重複的數字,並且將剩餘的數字進行從大到小的排序,python 如下 class solution 去除重複數字 從大到小排序 def maopao self,x 用集合去重,最後用sorted排序,再用 1 倒序處理 a i for i in set x return sorted a 1 if...