最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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日)的評論 (共 條)

分享到微博請遵守國家法律
社会| 石城县| 石阡县| 石城县| 宁武县| 固始县| 万州区| 土默特右旗| 彭州市| 海门市| 水富县| 尼木县| 浪卡子县| 利川市| 垣曲县| 廊坊市| 信宜市| 临湘市| 象山县| 余江县| 鹰潭市| 兴海县| 交城县| 常宁市| 山阳县| 兴化市| 龙井市| 曲阜市| 昔阳县| 三穗县| 青川县| 洛扎县| 玉龙| 金阳县| 岑巩县| 洪雅县| 府谷县| 司法| 沙雅县| 息烽县| 白水县|