卜若的代碼筆記-python系列-基礎篇-第八章:排序

1.排序是個大問題,通常情況下,我們希望我們的排序是時間複雜度爲o(n)而絕對不是o(n*n),尤其是針對大量數據的情況(百萬級或者千萬級)

在python裏面,我們一般使用它自帶的API,當然,如果你想了解原理,可以去學習我的數據結構系列,裏面會講的很清楚,只是現在的話,我沒空更新,果斷時間吧。

 

 

1.1 如果你是對純數字排序

你可以使用sorted

1.2 如果你希望用排序一個鍵值對模型,鍵值是排序的參考:

請重新鍵值對模型的__it__函數(iterator)

class Model(object):
    def __init__(self, key, value):
        self.key = key
        self.value = value

    def __lt__(self, other):
        return self.key < other.key

    def __str__(self):

        return '({0},{1})'.format(self.key,self.value)
    pass

d1 = [Model(2,'2'),Model(0,'0'),Model(4,'4'),Model(7,'7')]
d2 =sorted(d1)

for i in d2:
    print(i.__str__())
    pass

這個排序十分高效!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章