我真的不知道這種問題是否適合這個網站。我現在一直在嘗試理解排序演算法,我想到了一種對數字串列進行排序的新演算法,我想實作它。
結果如下:
def sort(obj: list) -> list:
result = []
for _ in range(len(obj)):
_biggest = 0
for i in obj:
_biggest = i if i > _biggest else _biggest
_lowest = _biggest
for i in obj:
_lowest = i if _lowest > i else _lowest
result.append(_lowest)
obj.remove(_lowest)
return result
該演算法基本上首先獲取給定串列中的最大值,然后在最大值的幫助下找到最小值,將找到的最小值添加到一個名為的新串列中result,最后從原始串列中洗掉最小值。回圈這個直到串列為空。
我用谷歌搜索了所有最快的排序演算法,這個演算法比其中許多演算法都要快。所以我決定找出我想出的演算法是否已經存在,但我找不到任何可以這樣作業的演算法。
我敢肯定,我不是唯一一個以這種方式找到的人。這個演算法叫什么名字?該演算法是否存在使其不合適的缺點?
uj5u.com熱心網友回復:
該演算法是選擇排序。此外,可以通過將 MAX_INT 用于最大來改進這一點,這樣您就可以消除第一個回圈以找到最大值。這會將其從 N×2N 提高到 N×N 復雜度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/448474.html
