首页 / 知识
python经典最短代码实现排序的功能
2023-11-12 13:38:00
冒泡排序:
算法思想:
1.比较相邻的元素,如果第一个比第二个大,则交换他们的位置;
2.依次对每一对的元素进行比较,如果前一个比后一个大,则交换他们的位置,这样第一轮下来,最大的元素在序列最后;
3.重复步骤二,这样,经过(n-1)轮,以后,序列按照从小到大依次排列;
分析:数组arr,首先分析数组的长度(len(arr)),接着第一次循环,从第一个元素开始比较,第二次循环从剩下未排序的元素进行比较
因此时间复杂度:O(n^2)
python代码实现:
defsort(arr):
foriinrange(1,len(arr)):
forjinrange(0,len(arr)-i):
ifarr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
returnarr
arr=[235975431]
a=sort(arr)
print(a)
选择排序:
算法思想:
1.首先在未排序的序列中选择最小的元素,放在排序序列的起始位置;
2.再从剩余未排序的序列中选择最小的元素放在已排序序列的末尾;
3.重复步骤2
分析:
我们首先拿到一组序列arr是未排序的,我们从arr中找到最小的一个元素,作为排序序列的起始位置,然后在依次比较没排序的序列,选择最小的元素放到已排序的序列之后,所以时间复杂度为O(n^2)
python代码实现:
defSelection_Sort(li):
foriinrange(len(li)-1):
forjinrange(i+1,n):
ifli[j]
li[j],li[i]=li[i],li[j]
插入排序:
算法思想:
1.将待排序的第一个元素看做一个有序序列,把第二个到最后一个元素当成未排序的序列;
2.从前到后依次扫描未排序的序列,将扫描的每一个元素插入到有序序列的合适位置
分析:
第一次扫描未排序的第一个元素(即整个序列的第二个元素),比已排序的序列的元素大的,放后面,比他小的放前面;
第二次扫描未排序的第二个元素,比已排序的序列的元素大的,放后面,比他小的放前面;
…
第len(arr)-1次,扫描未排序的第len(arr)-1个元素,比已排序的序列的元素大的,放后面,比他小的放前面;
python代码实现:
defSelection_Sort(li):
foriinrange(len(li)-1):
forjinrange(i+1,n):
ifli[j]
li[j],li[i]=li[i],li[j]
快速排序:
算法思想:
1.从元素中选择一个基准;
2.将所有比基准小的元素分为一部分,所有比基准大的元素分为一部分
3.再按照上述步骤12进行快速排序
分析:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
python代码实现:
defInsertion_Sort(li):
foriinrange(1,len(li)):
forjinrange(i,0,-1):
ifli[j]
li[j],li[j-1]=li[j-1],li[j]
print(sort([1,3,5,23,7]))
以上内容为大家介绍了python经典最短代码实现排序的功能,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc数据科学领域Python比R语言更好
数据科学领域Python比R语言更好,数据,公司,工具,时间,项目,工作,庞大,受益,系统,代码,经常有学员问我们,在数据科学领域里,到底是该选Python呢,为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画Python数据结构的时间复杂性
Python数据结构的时间复杂性,时间,项目,情况,平均,复杂度,培训,术语,数据,状态,操作,1.让我们了解大O符号的含义是什么?在算法中执行许多操作数据科学中必须了解的Python核心库
数据科学中必须了解的Python核心库,数据,生产,代码,标准,分析,培训,图片,工具,统一,涉足,python有三个核心数据科学库,在此基础上还创建了许多Python集合和时间复杂度
Python集合和时间复杂度,项目,时间,数据,数字,照片,情况,通用,培训,平均,表示,在本文的这一部分中,我将记录CPython中的常见集合,然后概述它们使用Python处理JSON格式的数据
使用Python处理JSON格式的数据,数据,代码,名称,信息,培训,对比,灵活,字典,文件,格式,如果你不希望从头开始创造一种数据格式来存放数据,JSON是如何让Python代码更易维护
如何让Python代码更易维护,代码,项目,标准,工具,质量,地方,一致,更正,培训,控制权,检查你的代码的质量,通过这些外部库使其更易维护。可读性很Python变量数据类型的转换
Python变量数据类型的转换,代码,数据,培训,信息,字符串,类型,变量,整数,浮点,函数,虽然Python是弱类型编程语言,不需要像Java或C语言那样还要