首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python 冒泡排序_python

要学习冒泡排序必须知道它的原理: 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。...这里面有n个数字,你要对其进行从大到小的排序的话,你就要拿相邻的两个数进行比较,如果第一个数比第二个大就交换他们的位置:第二个就和第三个比较,一直这样下去,直到最小的就会在最后面了,然后继续从第一和第二个进行比较...4,5,3,6,2,1 4,5,6,3,2,1 第4轮:4,5,6,3,2,1 5,4,6,3,2,1 5,6,4,3,2,1 第5轮:5,6,4,3,2,1 6,5,4,3,2,1 由上面可以清楚了解到一个进行了五轮排序...a_list[i] if a_list[i] < a_list[i+1]: a_list[i] = a_list[i+1] a_list[i+1] =tmp print(a_list) 这样就是冒泡排序

1.2K40

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

说到算法中的排序,冒泡排序是最简单的一种排序算法了,甚至不学数据结构与算法的同学都会使用它。但是你有没有想过可以怎么优化?...第一次冒泡的过程中,第一个元素 4 被移动到下标为【3】的位置(python 列表索引从 0 开始),位置 【3】就是有序部分的开始位置。...第二次冒泡的过程中,第一个元素 3 被移动到下标为【2】的位置(python 列表索引从 0 开始),位置 【2】就是有序部分的开始位置。...针对排序算法,有一个重要的衡量指标,就是稳定性,这个概念是说,如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。...当然有用,因为在软件开发中,要排序的数据不单单是一个属性的数据,而是有多个属性的对象,假如对订单排序,要求金额排序,订单金额相同的情况下,按时间排序

60030

Python 排序-插入排序-优化

你可以先试着自己写写代码,练习 Python 编码的能力,不能眼高手低。...0,0 insert_index = 0 while low < high-1: count +=1 mid = (low + high)//2 #python...直接插入排序是基于相邻的元素进行排序,如果说直接插入排序为步长为1 ,那么希尔排序就是先按步长为 K 来插入排序,然后在步长 K 排序的基础上再对步长 m 进行排序,当然 K 是大于 m 的,最后对步长...原地排序算法:希尔排序不借助额外的存储空间,因此是原地排序算法。...为什么插入排序比冒泡排序更受欢迎 冒泡排序和插入排序的时间复杂度都是O(n^2),都是稳定的原地排序算法,为什么插入排序就这么受欢迎呢? 前两篇文章有提到有序度,逆序度。

1.2K20

Python-排序-选择排序-优化

选择排序的思想:将一组数据分为两部分,前面是已排序部分,后面是未排序部分,初始状态可认为位置 0 为已排序部分 (数组下标从0开始),其余为未排序部分,每一次都从未排序部分选择一个最小元素放在已排序部分的末尾...,然后已排序部分增加一个元素,未排序部分减少一个元素,直到数据全部有序。...性能分析 首先,选择排序的只需要一个变量做为交换,因此空间复杂度是O(1),是一种原地排序算法。...其次,选择排序在未排序区间选择一个最小值,与前面的元素交换,对于值相同的元素,因为交换会破坏他们的相对公交车,因此它是一种不稳定的排序算法。...选择排序无论数据初始是何种状态,均需要在未排序元素中选择最小或最大元素与未排序序列中的首尾元素交换,因此它的最好、最坏、平均时间复杂度均为 O(n^2)。

71910

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

一、什么是冒泡排序 冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。...二、示例 假设待排序序列为 (5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示: 第一轮排序,此时整个序列中的元素都位于待排序序列,依次扫描每对相邻的元素,并对顺序不正确的元素对交换位置...经过本轮冒泡排序,从待排序序列中找出了最大数 4,并将其放到了待排序序列的尾部,并入已排序序列中。...经过本轮冒泡排序,从待排序序列中找出了最大数 2,并将其放到了待排序序列的尾部,并入已排序序列中。...三、冒泡排序的实现代码(python) def mao_pao(num_list): num_len = len(num_list) # 控制循环的次数 for j in range(num_len):

60530

Python|快速排序

1 快速排序的方法 取一个元素s,将比s小的元素放在s的左边,将比s大的元素放在s的右边;就是将数组划分成两部分,左小右大,然后将分好的两个数组递归继续执行上述操作,直到排序完毕为止。...此处用两个指针:left 与 right来处理,当s归位时划分完毕;例如数组; 排序前 ? 以s = 5 进行划分为左小右大,直到s归位,返回该处的left ?...递归执行上述步骤;在对划分的左右进行排序,直到排序完毕。 左边:left=0,right=返回的left-1 右边:left=返回的left,right=数组长度 ?...,及如何用python代码来实现。...快速排序相对于其他排序方法而言,主要突出了一个“快”字,可以更快的将数组的元素进行排序。 END 主 编 | 王文星 责 编 | W Z Y

32020

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券