一、用Python写算法之冒泡排序

网上很多讲排序的,但是都是用JAVA写的,最近自己用python写了一下,也用自己的话再描述一下,加深理解。

具体思想的话,可以参考这篇博客:https://blog.csdn.net/songzitea/article/details/8864084

这边简述一下,冒泡可以简单地理解为就是大的数沉底,小的往上。具体实现的时候,就是相邻的两个数比较,如果大的在前,交换顺序,反之,不操作。我从前往后扫描,就是先确定最大数,然后继续操作,获得第二大;如果是从后往前比较,就是先得到最小的数。详细的可以看看代码理解。


'''
Fun:实现冒泡排序
i=0:
j=1, 相邻两个数进行比较,即比较j=[0],j[1],小的在前。
然后接着比较j[2]和变化之后的j[1],小的在前;
再次比较j[3]和变化之后的j[2],小的在前;
遍历数组j之后,最大的数排在最后。
i=1:
j=1,此次遍历只用遍历到倒数第二个数即可。
……
这一过程继续下,直到时最后一次,
此时只比较一次,即比较最后两个数。
'''

def bubbleSort(a):
    for i in range(0,len(a)):
        for j in range(1,len(a)-i):
       
            #这里由于是将最大或最小的数放在右边,所以j < len(a) - i,这里是最大数
            if a[j-1]>a[j]:
                tmp=a[j-1]
                a[j-1]=a[j]
                a[j]=tmp
  
       # print(a) #这里可以打印出数组来看看数据变化的过程。
    return a

a=[6,4,5,1,8]
print(bubbleSort(a))


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容