当前位置 : 主页 > 网络编程 > 其它编程 >

python冒泡排序降序_python实现一可升降式的冒泡排序

来源:互联网 收集:自由互联 发布时间:2023-07-02
前几天看了个冒泡的排序这里手敲了一下代码简单记录如下defbubble_sort(arr,orderasc):##可选升降序的冒泡排 前几天看了个冒泡的排序这里手敲了一下代码简单记录如下 def bubble_sort(arr, orde
前几天看了个冒泡的排序这里手敲了一下代码简单记录如下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)

【文章转自阿里云代理 http://www.558idc.com/aliyun.html 欢迎留下您的宝贵建议】
网友评论