资讯专栏INFORMATION COLUMN

python实现冒泡算法

light / 2480人阅读

摘要:冒泡算法算法思想每次比较两个相邻的元素如果他们的顺序错误就把他们交换位置比如有五个数从大到小排序对相邻的两位进行比较第一趟第一次比较第二次比较第三次比较第四次比较经过第一趟比较后五个数中最小的数已经在最后面了接下来只比较前四个数依次类推第

冒泡算法:

- 算法思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置
比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位进行比较

第一趟:
第一次比较: 35, 12, 99, 18, 76
第二次比较: 35, 99, 12, 18, 76
第三次比较: 35, 99, 18, 12, 76
第四次比较: 35, 99, 18, 76, 12
经过第一趟比较后, 五个数中最小的数已经在最后面了, 接下来只比较前四个数, 依次类推

第二趟
99, 35, 76, 18, 12
第三趟
99, 76, 35, 18, 12
第四趟
99, 76, 35, 18, 12
比较完成
冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较)

代码如下:

def bubble(numbers):
    for i in range(len(numbers)-1):
        for j in range(len(numbers)-i-1):
            if numbers[j] > numbers[j+1]:
                numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
    return numbers

l = [2, 3, 44, 6, 2, 21, 3, 5, 7, 9]
print(bubble(l))

回头看看基础,数据结构和算法还是很重要的,,,,,,,,,,,,,,,,,,,,,摸摸自己的头顶,,,一阵叹息!!!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42037.html

相关文章

  • Github标星2w+,热榜第一,如何用Python实现所有算法

    摘要:归并排序归并排序,或,是创建在归并操作上的一种有效的排序算法,效率为大符号。以此类推,直到所有元素均排序完毕。与快速排序一样都由托尼霍尔提出的,因而也被称为霍尔选择算法。 showImg(https://segmentfault.com/img/remote/1460000019096360);编译:周素云、蒋宝尚 学会了Python基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只...

    zxhaaa 评论0 收藏0
  • Python 算法冒泡排序

    摘要:冒泡排序冒泡排序英语是一种简单的排序算法。冒泡排序算法的运作如下比较相邻的元素。冒泡排序动态图代码实现我们来逐行分析下。这里的减是为了不在遍历之前排序好的元素。记录交换的次数,但代表没有交换,序列已经有序。 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直...

    LeexMuller 评论0 收藏0
  • 基本排序算法Python实现

    摘要:本篇主要实现九八大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序计数排序。希尔排序是非稳定排序算法。归并排序算法依赖归并操作。但是,计数排序可以用在基数排序算法中,能够更有效的排序数据范围很大的数组。 本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序。希望大家回顾知识的时候也能从我的这...

    zhangqh 评论0 收藏0
  • python-八大算法

    摘要:排序算法总结排序算法平均时间复杂度冒泡排序选择排序插入排序希尔排序快速排序归并排序堆排序基数排序一冒泡排序基本思想两个数比较大小,较大的数下沉,较小的数冒起来。 排序算法总结 排序算法 平均时间复杂度 冒泡排序O(n2) 选择排序O(n2) 插入排序O(n2) 希尔排序O(n1.5) 快速排序O(N*logN) 归并排序O(N*logN) 堆排序O(N*logN) 基数排序O(d(n+...

    aboutU 评论0 收藏0
  • 前端面试必备——十大经典排序算法

    摘要:冒泡排序冒泡排序也是一种简单直观的排序算法。但希尔排序是非稳定排序算法。快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。 冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就...

    RebeccaZhong 评论0 收藏0

发表评论

0条评论

light

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<