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...