澳门在线威尼斯官方 > 澳门在线威尼斯官方 > 澳门在线威尼斯官方:python实现冒泡排序

原标题:澳门在线威尼斯官方:python实现冒泡排序

浏览次数:184 时间:2019-11-05

怎么着是冒泡排序?

  冒泡排序(Bubble Sort卡塔尔国,是后生可畏种Computer科学领域的较轻易的排序算法。

它再次地拜候过要排序的数列,一回比较三个元素,假如她们的相继错误就把他们沟通过来。拜候数列的专门的学业是重新鸿基土地资金财产张开直到未有再供给调换,也等于说该数列已经排序完结。

本条算法的名字由来是因为越大的因素会路过沟通逐步“浮”到数列的上方,故名冒泡排序。

 

  以上是百度词条对冒泡排序的合法表达。

 

  可是小编要说一下笔者的民用知道,小编认为冒泡排序的宗旨理想是:每回相比相当多少个数,借使她们生龙活虎风度翩翩错误(大于只怕小于卡塔 尔(阿拉伯语:قطر‎,那么就把她们置换。

  比方:假使要将多个严节的数字做升序排列(约等于从小到大排列卡塔 尔(阿拉伯语:قطر‎,那么利用冒泡排序怎么着兑现啊?

  1. 率先,相比第一个数和第三个数的朗朗上口,由于是从小到大排列,所以借使第二个数大于第叁个数,则将那多少个数互交换一下地方置,反之则不改变。
  2. 然后开展第二个数和第多个数相比较,同上。
  3. 这么逐大器晚成比较黄金时代轮后,你会意识,总共比了4次,也正是说,假若有n个数举行比较,那么供给n-1次本领形成。
  4. 地方进度主要形成了意气风发轮相比较,最后明确了三个最大的数,并且排在5个数的尾声,约等于第四个数。
  5. 那么也就表示需求在进展第二个数到第三个数的意气风发轮相比,分明最大值。
  6. 任何时候从第叁个数到第多个数......
  7. 那样规律就很分明了,八个数需求相比四轮,就能够将5个数升序排列,所以n个数供给比较n-1轮。

  以上便是冒泡排序的得以完成思路,接下去看代码!

哪些兑现?

究竟该怎么贯彻吗?看了地点的剖释,笔者相信你也能编出来吧!

看下作者用python编的呢:

方式生机勃勃:常规完毕冒泡排序

# 方法1
# 定义一个列表,用于存放数字
list = []
while True:
    # 自定义输入数字个数
    print('你想排列几个数?')
    try:
        num = int(input())
        for i in range(num):
            a = int(input('请输入第' + str((i+1)) + '个整数:'))
            list.append(a)
    except ValueError:
        print('输入有误!')

    # 冒泡排序核心代码,
    for j in range(len(list)-1):
        for k in range(len(list)-1):
            if list[k] < list[k+1]:
                t = list[k]
                list[k] = list[k+1]
                list[k+1] = t

    print(list)

算法的好坏首要看它的光阴复杂度,冒泡排序的年华复杂度为:O(N^2)
能够看见,冒泡排序的年月复杂度偏高,所以它还不是最优算法!

主意二:利用sorted()方法快速达成排序

# 定义一个列表对象存数字
list = []
print('你想排列几个数?')
try:
    num = int(input())
    for i in range(num):
        a = int(input('请输入第' + str((i + 1)) + '个整数:'))
        list.append(a)
except ValueError:
    print('输入有误!')

# 利用sorted()方法排序,并使用reverse字段实现降序
print(sorted(list, reverse=True))

  特别推荐这种应用sorted()方法完毕排序的诀窍,因为轻松嘛!python正是以简洁明了为名,越少的代码达成平等的功力,何乐不为!

本文由澳门在线威尼斯官方发布于澳门在线威尼斯官方,转载请注明出处:澳门在线威尼斯官方:python实现冒泡排序

关键词:

上一篇:没有了

下一篇:处理三个小问题