美文网首页
一、用Python写算法之冒泡排序

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

作者: wendy云泽 | 来源:发表于2020-11-18 10:52 被阅读0次

    网上很多讲排序的,但是都是用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))
    
    
    

    相关文章

      网友评论

          本文标题:一、用Python写算法之冒泡排序

          本文链接:https://www.haomeiwen.com/subject/wdoqiktx.html