交作业:
def bubble_sort(mylist):
for j in range(len(mylist)-1):
for i in range(len(mylist)-1):
if mylist[i] > mylist[i+1]:
mylist[i],mylist[i+1] = mylist[i+1],mylist[i]
return mylist
def test_bubble_sort():
assert bubble_sort([0, 5, 2, 3, 2]) == [0, 2, 2, 3, 5]
assert bubble_sort([-2, -45, -5]) == [-45, -5, -2]
assert bubble_sort([-23, 0, 6, -4, 34]) == [-23, -4, 0, 6, 34]
python很方便地交换两个元素,a,b = b,a,否则应该写一个swap函数
学会冒泡排序算法
文章参考:https://stackabuse.com/bubble-sort-in-python/
作业:写出冒泡的代码,并上传到知识星球里,详见下面介绍。
算法刷题 1:精通冒泡排序
对于大多数人来说,冒泡排序可能是他们在计算机科学课程中听说的第一种排序算法。
它高度直观且易于“转换”为代码,这对于新软件开发人员而言非常重要,因此他们可以轻松地将自己转变为可以在计算机上执行的形式。
但是,Bubble Sort 是在每种情况下性能最差的排序算法之一。但是,排序算法也不是一无是处,检查数组是否已排序,它通常优于快速排序等更有效的排序算法。
Bubble Sort 背后的想法非常简单,我们查看数组中相邻的成对元素,一次查看一对。
如果第一个元素大于第二个元素,则交换它们的位置,否则将它们继续移动。
让我们看下面这个冒泡排序的整个实现过程:
实现
借助可视化功能,让我们继续实施算法。想办法补全如下代码:
def bubble_sort(our_list):
写出你的代码
补充完整
return our_sorted_list
如果你搞不定,请参考下面文章:
网友评论