python---快速排序
说是最快,但也感觉最难。。:(
来个总结。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。# coding = utf-8
# 快速排序
def partition(a_list, first, last):
loop_count = 0
pivot_value = a_list[first]
left_mark = first + 1
right_mark = last
done = False
while not done:
loop_count += 1
while left_mark <= right_mark and a_list[left_mark] <= pivot_value:
loop_count += 1
left_mark += 1
while a_list[right_mark] >= pivot_value and right_mark >= left_mark:
loop_count += 1
right_mark -= 1
if right_mark < left_mark:
done = True
else:
temp = a_list[left_mark]
a_list[left_mark] = a_list[right_mark]
a_list[right_mark] = temp
temp = a_list[first]
a_list[first] = a_list[right_mark]
a_list[right_mark] = temp
print('======== quick_sort loop_count========', loop_count)
return right_mark
def quick_sort_helper(a_list, first, last):
loop_count = 0
if first < last:
loop_count += 1
split_point = partition(a_list, first, last)
quick_sort_helper(a_list, first, split_point-1)
quick_sort_helper(a_list, split_point+1, last)
print('======== quick_sort loop_count========', loop_count)
def quick_sort(a_list):
quick_sort_helper(a_list, 0, len(a_list)-1)
my_list = [4, 5, 7, 2, 9, 7, 9, 54, 765, 45, 9876, 34, 12343, 36]
quick_sort(my_list)
print(my_list)
C:\Users\Sahara\.virtualenvs\test\Scripts\python.exe C:/Users/Sahara/PycharmProjects/test/python_search.py ======== quick_sort loop_count======== 15 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 12 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 10 ======== quick_sort loop_count======== 2 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 9 ======== quick_sort loop_count======== 3 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 2 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 4 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 0 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 1 ======== quick_sort loop_count======== 1 [2, 4, 5, 7, 7, 9, 9, 34, 36, 45, 54, 765, 9876, 12343] Process finished with exit code 0
更多精彩

