數(shù)據(jù)結(jié)構(gòu)-Python實(shí)現(xiàn)「交換類排序」
运行环境:python 2.7.12
学习课程来源:算法与数据结构C++精解
分类:
- 1.冒泡排序
- 2.快速排序
1. 冒泡排序
def bubble_sort(arr, n):
swapped = True
while swapped:
swapped = False
for i in xrange(1, n):
if arr[i-1] > arr[i]:
arr[i-1], arr[i] = arr[i], arr[i-1]
swapped = True
n -= 1
2.快速排序
# _*_ coding:utf-8 _*_
def quick_sort(arr, n):
__quick_sort(arr, 0, n-1)
# 对arr[l...r]部分进行快速排序
def __quick_sort(arr, l, r):
if l >= r:
return
p = __partition(arr, l, r)
__quick_sort(arr, l, p-1)
__quick_sort(arr, p+1, r)
# 对arr[l...r]部分进行partition操作
# 返回p,使得arr[l...p-1] < arr[p]; arr[p+1, r] > arr[p]
def __partition(arr, l, r):
v = arr[l]
j = l
for i in xrange(l+1,r+1):
if arr[i] < v:
j = j+1
arr[j], arr[i] = arr[i], arr[j]
arr[l], arr[j] = arr[j], arr[l]
return j
if __name__ == '__main__':
arr = [2,4,5,10,3,8,7,6,9,1]
len_arr = len(arr)
quick_sort(arr, len_arr)
print arr
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦