NSThread的main方法內部做了什麼?
阿新 • • 發佈:2020-07-11
一、通過JavaScript實現
1.1思路
1.2實現
二、通過Java實現
2.1思路
2.2實現
三、通過Python實現
3.1思路
通過二分法遞迴進行排序
a.選擇一個基準值(中值)
b.宣告兩個列表,分別儲存小於基準值和大於基準值的元素
c.遞迴上面步驟
d.直到長度為一,將兩個列表和基準值拼接成
[list]
列表返回
3.2實現
# -*- encode: utf-8 -*- import numpy as np def quick_sort(_array): """ 快速排序, 通過二分法實現 :param _array: 可轉換為列表的資料型別 :return: 已排序的列表 """ _array = list(_array) # 型別轉換 if len(_array) >= 2: # 列表判斷長度是否>=2,是則進行排序操作;否則返回列表 middle = _array[len(_array) // 2] # 設定基準值 left, right = list(), list() # 定義基準值左右兩邊的[list]列表 _array.remove(middle) # 將基準值從源列表中移除 for item in _array: # 遍歷每一項元素, 將其新增到對應的列表中 if item >= middle: right.append(item) else: left.append(item) # 遞迴結果 return quick_sort(left) + [middle] + quick_sort(right) else: return _array if __name__ == '__main__': array = np.random.randint(0, 100, 10) # [17 20 21 45 64 33 13 32 81 36] sort = quick_sort(array) # [13, 17, 20, 21, 32, 33, 36, 45, 64, 81]