對多個字串使用氣泡排序法的python實現
阿新 • • 發佈:2018-12-19
今天在上資料結構與演算法課的時候,老師突擊測試,讓我們用氣泡排序演算法實現對多個字串的降排序,平常 老師講課都用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') # 呼叫函式