如何将可升降式冒泡排序改写为长尾词?
- 内容介绍
- 相关推荐
本文共计413个文字,预计阅读时间需要2分钟。
最近看了个冒泡排序的排序方法,这里简单记录一下代码如下:
pythondef bubble_sort(arr, order_asc=True): n=len(arr) for i in range(n): for j in range(0, n-i-1): if order_asc: if arr[j] > arr[j+1]: arr[j], arr[j+1]=arr[j+1], arr[j] else: if arr[j] 前几天看了个冒泡的排序这里手敲了一下代码简单记录如下defbubble_sort(arr,orderasc):##可选升降序的冒泡排
前几天看了个冒泡的排序这里手敲了一下代码简单记录如下
def bubble_sort(arr, orderasc):
# #可选升降序的冒泡排序, order>0升序order<0降序
# swapNeeded True # flag位
counter 0 # 计数(用于统计多少次排好序)
for i in range(len(arr)): # 这个循环负责设置冒泡排序进行的次数(比如说n个数则只要进行n-1次冒泡就可以把这个n个数排序好)
swap_needed False
for j in range(0, len(arr)-i-1):
# 这里这个j呢就是控制每一次具体的冒泡过程请你想一想我们第一次冒泡需要冒几次也就是说需要比较几次
# 假如有三个数那只需要两次就可以了当下一次时最后一个
# 已经是有序的了所以说少冒泡一次所以这里j每次都会减去i的值即不用冒“无用之泡泡”
if order asc:
if arr[j] > arr[j1]:
arr[j], arr[j 1] arr[j 1], arr[j]
swap_needed True
elif order desc:
if arr[j]
arr[j], arr[j 1] arr[j 1], arr[j]
swap_needed True
if not swap_needed:
break
i 1
counter 1
return arr, counter
arr [34,2,5,4,17,36,8]
# print(bubble_sort(arr))
print(bubble_sort(arr, asc))
print(bubble_sort(arr, desc))
结果
([2, 4, 5, 8, 17, 34, 36], 3)
([36, 34, 17, 8, 5, 4, 2], 6)
本文共计413个文字,预计阅读时间需要2分钟。
最近看了个冒泡排序的排序方法,这里简单记录一下代码如下:
pythondef bubble_sort(arr, order_asc=True): n=len(arr) for i in range(n): for j in range(0, n-i-1): if order_asc: if arr[j] > arr[j+1]: arr[j], arr[j+1]=arr[j+1], arr[j] else: if arr[j] 前几天看了个冒泡的排序这里手敲了一下代码简单记录如下defbubble_sort(arr,orderasc):##可选升降序的冒泡排
前几天看了个冒泡的排序这里手敲了一下代码简单记录如下
def bubble_sort(arr, orderasc):
# #可选升降序的冒泡排序, order>0升序order<0降序
# swapNeeded True # flag位
counter 0 # 计数(用于统计多少次排好序)
for i in range(len(arr)): # 这个循环负责设置冒泡排序进行的次数(比如说n个数则只要进行n-1次冒泡就可以把这个n个数排序好)
swap_needed False
for j in range(0, len(arr)-i-1):
# 这里这个j呢就是控制每一次具体的冒泡过程请你想一想我们第一次冒泡需要冒几次也就是说需要比较几次
# 假如有三个数那只需要两次就可以了当下一次时最后一个
# 已经是有序的了所以说少冒泡一次所以这里j每次都会减去i的值即不用冒“无用之泡泡”
if order asc:
if arr[j] > arr[j1]:
arr[j], arr[j 1] arr[j 1], arr[j]
swap_needed True
elif order desc:
if arr[j]
arr[j], arr[j 1] arr[j 1], arr[j]
swap_needed True
if not swap_needed:
break
i 1
counter 1
return arr, counter
arr [34,2,5,4,17,36,8]
# print(bubble_sort(arr))
print(bubble_sort(arr, asc))
print(bubble_sort(arr, desc))
结果
([2, 4, 5, 8, 17, 34, 36], 3)
([36, 34, 17, 8, 5, 4, 2], 6)

