您的位置:首页 > 编程语言 > Python开发

python实现冒泡排序和快速排序

2017-04-08 18:41 711 查看
冒泡排序和快排的python实现:

data = [1, 3, 5, 10, 4, 7]
times = 0
"冒泡排序"
for i in range(len(data)):
for j in range(len(data) - i - 1):
if data[j] > data[j + 1]:
tmp = data[j + 1]
data[j + 1] = data[j]
data[j] = tmp
times += 1

print("冒泡排序")
print(data)
print("times:%d" % times)

"改进冒泡排序,插入标志位,提前结束排序"
data = [1, 3, 5, 10, 4, 7]
times = 0
for i in range(len(data)):
pos = 0
for j in range(len(data) - i - 1):
if data[j] > data[j + 1]:
tmp = data[j + 1]
data[j + 1] = data[j]
data[j] = tmp
pos = 1
times += 1
if pos == 0:
break

print("改进冒泡排序")
print(data)
print("times:%d" % times)

"快排,选第一个数为基准值,小数放在基准左边,大数放在基准右边"
data = [1, 3, 5, 10, 4, 7]

def exchage(x, y):
return y, x

def qsort(left , right):
if left > right:
return
p = data[left]
i = left
j = right

while i != j:

while data[j] > p and i < j:
j -= 1

data[i],data[j] = exchage(data[i],data[j])

while data[i] < p and i < j:
i += 1

data[i],data[j] = exchage(data[i],data[j])

qsort(left,i-1)
qsort(i+1,right)

qsort(0,len(data)-1)
print("quick sort")
print(data)

输出结果:

冒泡排序
[1, 3, 4, 5, 7, 10]
times:15
改进冒泡排序
[1, 3, 4, 5, 7, 10]
times:12
quick sort
[1, 3, 4, 5, 7, 10]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: