zoukankan      html  css  js  c++  java
  • python实现冒泡排序

    冒泡排序的思想及实现步骤
    冒泡排序(Bubble Sort)
        冒泡排序的核心思想是:通过双层循环遍历,每次比较两个数,如果他们顺序错误(大于或者小于),那么就把他们位置交换。
     
    • 首先,比较第一个数和第二个数的大小,由于是从小到大排列,所以如果第一个数大于第二个数,则将这两个数互换位置,反之则不变。
    • 然后进行第二个数和第三个数比较,同上。
    • 这样依次比较一轮后,你会发现,总共比了4次,也就是说,如果有n个数进行比较,那么需要n-1次才能完成。
    • 上面过程主要完成了一轮比较,最终确定了一个最大的数,并且排在5个数的最后,也就是第五个数。
    • 那么也就意味着需要在进行第一个数到第四个数的一轮比较,确定最大值。
    • 接着从第一个数到第三个数......
    • 这样规律就很明显了,五个数需要比较四轮,就能将5个数升序排列,所以n个数需要比较n-1轮。
     
    冒泡排序算法利用了双层循环,时间复杂度为O(n^2)
    稳定性为:稳定
    python实现冒泡排序的代码
    class Solution(object):
        def __init__(self,l):
            self.l = l
    
        def mp_sort(self):
            for i in range(len(self.l)):
                for j in range(len(self.l)-i-1):
                    if self.l[j] > self.l[j+1]:
                        self.l[j+1], self.l[j]= self.l[j], self.l[j+1]
                    else:
                        pass
            print(self.l)
    
    P = Solution([2,7,3,11,25,9,14,3])
    P.mp_sort()
    
    # 运行结果:[2, 3, 3, 7, 9, 11, 14, 25]
  • 相关阅读:
    什么是脚本语言?什么是解释性语言?什么是编译性语言?
    自己写的java excel导出工具类
    httpclient模拟post请求json封装表单数据
    git 远程库命令
    git 常用命令及解析 由浅入深
    图书馆借书(年,月,日)
    线索二叉树
    AxB Proplem(大数乘法)
    简易版最长序列(map映射)
    小黑跳地毯减肥(递推)
  • 原文地址:https://www.cnblogs.com/aberwang/p/10497381.html
Copyright © 2011-2022 走看看