首页
学习
活动
专区
工具
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...: 冒泡排序过程包含两个操作,比较和交换,因为冒泡排序只会交换相邻的两个元素,所以,每进行一次交换,有序度就增加一。...所以,冒泡排序的执行过程中,总的交换次数是确定的,即为逆序度。

64030

Python 如何优化冒泡排序

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

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

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

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

    64230

    冒泡排序及其优化方案

    冒泡排序及其优化(以升序为例) 排序流程: 步骤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) 即全部循环了才有序 算法的稳定性 排序算法是稳定的算法 以上就是冒泡排序算法及其优化方案

    27100

    冒泡排序及其优化方案

    冒泡排序及其优化(以升序为例) 排序流程: 步骤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) 即全部循环了才有序 算法的稳定性 排序算法是稳定的算法 以上就是冒泡排序算法及其优化方案

    24620

    【C语言】冒泡排序+优化

    先来介绍一下冒泡排序: 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。...这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。...冒泡排序顾名思义就是将一些没有顺序的数字排的有顺序: int main() { int a=0; //定义一个接受值 int b[20]={0}; //定义数组,这就是我们后面要用到的排序数组...s_mpqx(b,a); for(int z=0;z<a;z++) { printf("%d ",b[z]); } return 0; } 优化版...break; } } } 我们首先需要让数值进行一次比较,在所有数字都是按照正确的顺序时,pd的值不变,在外层for循环中直接退出即可,省去了多次去比较而浪费时间 这样我们的冒泡排序和优化后的就诞生了

    10110

    Python|图述冒泡

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

    43220

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券