五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java & Js & Python 快速排序(2020年8月31日)

2021-03-21 13:44 作者:阿-岳同學(xué)  | 我要投稿

學(xué)習(xí)背景

大二上學(xué)期剛開學(xué),學(xué)習(xí)了一點(diǎn)算法。參考著《數(shù)據(jù)解構(gòu)》上C語言版的快速排序算法,經(jīng)過理解記憶和練習(xí),默寫java、js、python版的快速排序。

源代碼

Java

JavaScript

Python


def partition(array, low, high):
??? """
??? 快速排序中用到的分割函數(shù):
??? 重新排序數(shù)列,所有比基準(zhǔn)值小的元素擺放在基準(zhǔn)前面,
??? 所有比基準(zhǔn)值大的元素擺在基準(zhǔn)后面(與基準(zhǔn)值相等的數(shù)可以到任何一邊)。
??? 在這個分割結(jié)束之后,對基準(zhǔn)值的排序就已經(jīng)完成;
??? @:param array 傳入的數(shù)組,一小段
??? @:param low 最小索引
??? @:param high 最大索引
??? @:return 一步分割后的基準(zhǔn)值下標(biāo)
??? """
??? i = low? # 最小元素索引
??? # j 遍歷 [low, high),high 是基準(zhǔn)值的下標(biāo),所以不包含 high
??? for j in range(low, high):
??????? # 當(dāng)元素小于或者等于基準(zhǔn)值 array[high]
??????? if array[j] < array[high]:
??????????? # 交換下標(biāo) i 和 j 的位置
??????????? if i != j:
??????????????? array[i], array[j] = array[j], array[i]
??????????? i += 1
??? # 交換位置
??? array[i], array[high] = array[high], array[i]
??? return i


def quick_sort(array, low, high):
??? """
??? 快速排序
??? 該函數(shù)直接修改了數(shù)組的狀態(tài)
??? :param array: 排序數(shù)組
??? :param low: 起始索引
??? :param high: 結(jié)束索引
??? """
??? if low <= high:
??????? pi = partition(array, low, high)
??????? quick_sort(array, low, pi - 1)? # 對前半部分排序
??????? quick_sort(array, pi + 1, high)? # 對后半部分排序


if __name__ == '__main__':
??? arrayList = []
??? for num in range(100000):
??????? arrayList.append(uniform(0, 100))

??? t1 = time()
??? quick_sort(arrayList, 0, len(arrayList) - 1)
??? t2 = time()
??? print(t2 - t1)
??? pass


Java & Js & Python 快速排序(2020年8月31日)的評論 (共 條)

分享到微博請遵守國家法律
镇原县| 大连市| 馆陶县| 平顺县| 胶南市| 额济纳旗| 咸丰县| 贞丰县| 汾西县| 延边| 永泰县| 蓝田县| 临安市| 尖扎县| 饶河县| 巨野县| 根河市| 阜阳市| 南充市| 正宁县| 云龙县| 迭部县| 大同市| 容城县| 锡林浩特市| 彭州市| 江川县| 尼玛县| 玛多县| 信阳市| 宜丰县| 七台河市| 黄浦区| 阜平县| 乌拉特前旗| 建宁县| 海原县| 台北县| 青阳县| 凯里市| 马龙县|