1. 程式人生 > >對多個字串使用氣泡排序法的python實現

對多個字串使用氣泡排序法的python實現

 	今天在上資料結構與演算法課的時候,老師突擊測試,讓我們用氣泡排序演算法實現對多個字串的降排序,平常
老師講課都用C++,但我沒學過,而之前學過的C語言太久沒用,也忘得差不多了,迫不得已,拿起了最近在學習的
Python試水。當時想網路借鑑一下別人的程式碼,但是沒找到太準確的,還是自己動手寫了,當時時間太短,寫得不
太完整,回頭自己在pycharm除錯實現了。
	上面寫這麼多也只是記錄一下自己在專業方面的學習過程,深知自己還是一隻菜鳥,但是冰封三尺非一日之寒,
好的成績都是由每一個小進步累積而成的,共勉!

———————————————————————————————————————分割線————————————————————————————————————————
	對多個字串使用氣泡排序演算法的python實現,在網路上多見是C語言的版本,本人感覺python寫的更加簡單。
其中,字串的比較,python可以直接用 大小於號 來表示,而C語言則需要用strcmp函式。

def bubblesort(string):
    ls = string.split(',')          # 將字串以','為標誌分開,每個子字串存入列表ls
    n = len(ls)                     # n為ls的元素個數
    while n > 1:                    # 氣泡排序的大迴圈,從n-1次開始,每一趟 減1次相鄰元素間的比較
        for i in range(n-1):        # 氣泡排序的小迴圈,第一趟n-1次比較,第二趟n-2次,逐漸遞減至1次
            if ls[i] < ls[i+1]:     # 比較相鄰字串大小,次序相反的元素交換,降冪排序
                a = ls[i]           # 元素交換
                ls[i] = ls[i+1]
                ls[i+1] = a
        n = n-1                     # 控制小迴圈的迴圈次數
    print(ls)                       # 輸出排序後的結果


bubblesort('sc,ad,as,xx,ew,gbd,adx,dfa')     # 呼叫函式