1. 程式人生 > 實用技巧 >NSThread的main方法內部做了什麼?

NSThread的main方法內部做了什麼?

一、通過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]