首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

冒泡排序python实现_冒泡排序python代码优化

一、什么是冒泡排序 冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。...三、冒泡排序的实现代码(python) def mao_pao(num_list): num_len = len(num_list) # 控制循环的次数 for j in range(num_len):...# 添加标记位 用于优化(如果没有交换表示有序,结束循环) sign = False # 内循环每次将最大值放在最右边 for i in range(num_len - 1 - j): if a[i...: 冒泡排序过程包含两个操作,比较和交换,因为冒泡排序只会交换相邻的两个元素,所以,每进行一次交换,有序度就增加一。...所以,冒泡排序的执行过程中,总的交换次数是确定的,即为逆序度。

60530

Python 如何优化冒泡排序

什么叫冒泡排序法? 相信有接触过算法的朋友多少都了解冒泡排序法,那么什么是冒泡排序法呢?...冒泡排序,英文名称(Bubble Sort)是一种基础的交换排序算法,在日常工作中经常会用到,例如:页面数据需按时间先后排序,这本质上也是一种冒泡排序法。...喝过可乐的朋友都知道,可乐里面的气泡会向上浮,这就是冒泡排序一种最形象的例子。至于有些朋友问,是大的气泡先上浮还是小的先上浮呢?这就取决于你的需求去做控制了。...先上动图,再结合代码介绍一下冒泡排序算法的执行过程。 ?...在这种情况下冒泡排序算法的时间复杂度是 O(N^2) 鉴于基础版冒泡排序效率低下,改进版应运而生。

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Python-排序-冒泡排序-优化

说到算法中的排序,冒泡排序是最简单的一种排序算法了,甚至不学数据结构与算法的同学都会使用它。但是你有没有想过可以怎么优化?...,数据已经有序,因此可以加入判断,如果本次循环没有冒泡(交换),说明数据已经有序,可以直接退出,优化后的代码如下: 优化一 def bubble_sort2(collection): """...第一次冒泡的过程中,第一个元素 4 被移动到下标为【3】的位置(python 列表索引从 0 开始),位置 【3】就是有序部分的开始位置。...第二次冒泡的过程中,第一个元素 3 被移动到下标为【2】的位置(python 列表索引从 0 开始),位置 【2】就是有序部分的开始位置。...优化思路可以通过观察分析得出,还有一点,冒泡排序虽然使用了数组存储数据但是并没有使用数组随机访问的特性,因此改用链表这种存储结构,使用冒泡排序仍然是可以实现的,你可以尝试下。

60030

冒泡排序及其优化方案

冒泡排序及其优化(以升序为例) 排序流程: 步骤1.从头开始比较相邻的两个元素,如果后面一个比前面一个小就交换位置,这样执行一轮最后的一个就是最大元素 步骤2.忽略之前找到的最大元素,重复执行步骤1,直到全部元素有序...for (int i=0;i< arr.length;i++){ System.out.println(arr[i]); } } } 优化方案...arr[i]); } } } 复杂度: 空间复杂度O(1) 时间复杂度:最好O(n)即一次循环后就退出 最差O(n^2) 即全部循环了才有序 优化方案二...} } 复杂度: 空间复杂度O(1) 时间复杂度:最好O(n)即一次循环后就退出 最差O(n^2) 即全部循环了才有序 算法的稳定性 排序算法是稳定的算法 以上就是冒泡排序算法及其优化方案

24300

冒泡排序及其优化方案

冒泡排序及其优化(以升序为例) 排序流程: 步骤1.从头开始比较相邻的两个元素,如果后面一个比前面一个小就交换位置,这样执行一轮最后的一个就是最大元素 步骤2.忽略之前找到的最大元素,重复执行步骤1,...for (int i=0;i< arr.length;i++){ System.out.println(arr[i]); } } } 优化方案...System.out.println(arr[i]); } } } 复杂度: 空间复杂度O(1) 时间复杂度:最好O(n)即一次循环后就退出 最差O(n^2) 即全部循环了才有序 优化方案二...} } } 复杂度: 空间复杂度O(1) 时间复杂度:最好O(n)即一次循环后就退出 最差O(n^2) 即全部循环了才有序 算法的稳定性 排序算法是稳定的算法 以上就是冒泡排序算法及其优化方案

23120

Python|图述冒泡

引言 在“小鲤鱼历险记”中,小鲤鱼的绝活是吐泡泡,惹得好多人捧腹大笑,其实在数据算法的世界里,也有一个有趣的现象叫冒泡排序。...解决方案 冒泡排序就是交换排序的一种排序方法 百度百科上面冒泡排序的定义,是一种计算机科学领域的较简单的排序算法。...首先冒泡排序其实不是很难,相对于直接排序,冒泡排序的算法程度是比较简单的,因为直接排序一个一个比较大小,这样就会导致算法的时间复杂度就会很大。所以我推荐用冒泡排序。...,所以就进行交换,这就像水的泡泡,而小的数就像水里的泡泡一个一个浮上来,而相对大的数就慢慢沉下去了,所以冒泡排序还是比较有趣的。...结语 以上就是冒泡排序的简单介绍,可能过程不是很详细,但是应该能够初步理解,有些数组用冒泡排序还是要进行很多趟的排序才能够得到结果,但是冒泡排序是一种常用的排序方法。

41020

Python实现冒泡排序

一、冒泡排序简介 冒泡排序(Bubble Sort)是一种常见的排序算法,相对来说比较简单。...在冒泡排序中,值最大(或最小)的元素会通过交换慢慢“浮”到元素列表的“顶端”。就像“冒泡”一样,所以被称为冒泡排序。 二、冒泡排序原理 冒泡排序的原理如下: 1. 比较相邻的两个元素。...一直“走访”到结尾,第一轮“冒泡”结束后,值最大的元素“冒泡”到了列表的结尾。50“冒泡”到了列表结尾。 ? 在下一轮“冒泡”中,不需要再将50进行比较,需要比较的元素个数减1。 6....三、Python实现冒泡排序 # coding=utf-8 def bubble_sort(array): for i in range(1, len(array)): for...在冒泡排序中,最坏的情况是元素列表的初始状态是完全逆序排列的,需要进行 n-1 轮“冒泡”,每一轮“冒泡”需要进行 n-i 次比较和交换操作。

89230

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券