1. 程式人生 > >python中編寫氣泡排序函式,可以排序任意型別的元素,可以逆序

python中編寫氣泡排序函式,可以排序任意型別的元素,可以逆序

1.實現氣泡排序演算法2.可以排序任意型別的元素

3.能夠通過引數設定進行逆序,預設升序

用for in 遍歷元素和if else處理。直接排序,根據鍵排序兩種情況,各自又分為升序和降序兩種情況排序。

def list_sort(lt, key=None, reverse=False):
   n = len(lt)
   for i in range(n-1):
      for j in range(n-i-1):
         if key:
            if reverse:
               if key(lt[j]) < key(lt[j + 1]):
                  lt[j], lt[j + 1
] = lt[j + 1], lt[j] else: if key(lt[j]) > key(lt[j + 1]): lt[j], lt[j + 1] = lt[j + 1], lt[j] else: if reverse: if lt[j] < lt[j+1]: lt[j], lt[j+1] = lt[j+1], lt[j] else: if
lt[j] > lt[j + 1]: lt[j], lt[j + 1] = lt[j + 1], lt[j] return lt
lt = [
   {'name': 'xiaoming', 'age': 18},
   {'name': 'xiaoming', 'age': 15},
   {'name': 'xiaoming', 'age': 16},
   {'name': 'xiaoming', 'age': 17}
]
print(list_sort(lt, key=lambda d: d['age'], reverse=False))
結果:[{'name': 'xiaoming', 'age': 15}, {'name': 'xiaoming', 'age': 16}, {'name': 'xiaoming', 'age': 17}, {'name': 'xiaoming', 'age': 18}]