python排序的方法实例总结
作者:小妮浅浅 发布时间:2023-09-10 15:57:49
标签:python,排序方法
1、冒泡排序
它反复访问要排序的元素列,并依次比较两个相邻的元素。如果顺序(如从大到小)错了,就交换它们。访问元素的工作是反复进行,直到没有相邻元素需要交换,也就是说元素列已经排序完成。
2、选择排序
首次从待排序的数据元素中选择最小(或最大)的元素,存储在序列的开始位置,然后从剩余的未排序元素中找到最小(大)元素,然后放在已排序的末尾。直到所有元素都被排序。
3、插入排序
对于未排序的数据,通过构建有序的序列,在已排序的序列中从后向前扫描,找到相应的位置并插入。插入式排序在实现上,在从后向前扫描的过程中,需要反复将已排序的元素逐步向后移动,为最新的元素提供插入空间。
4、快速排序
将要排序的数据通过一次排序分成两个独立的部分,其中一个部分的所有数据都小于另一个部分的所有数据,然后按照这种方法对这两个部分的数据进行快速排序,整个排序过程可以递归进行,从而使整个数据成为有序的序列。
5、希尔排序(插入排序改进版)
首先,将要排序的一组数量按某个增量d分为几个组,每组中记录的下标相差d,对每组中的所有元素进行排序,然后用较小的增量对其进行分组,然后对每组进行排序。当增量减少到1时,整个要排序的数量被分成一组,排序完成。
6、归并排序
首先递归分解组,然后合并组。基本思路是比较两个数组的面的数字,谁小就先取谁,取后相应的指针向后移动一个。然后再比较,直到一个数组是空的,最后复制另一个数组的剩余部分。
实例扩展:
>>> data1=[4,2,6,432,78,43,22,896,42,677,12]
>>> data1.sort()
>>> data1 #原来的顺序被替换
[2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896]
>>> data1=[4,2,6,432,78,43,22,896,42,677,12]
>>> data2=sorted(data1)
>>> data1
[4, 2, 6, 432, 78, 43, 22, 896, 42, 677, 12] #原顺序保留
>>> data2
[2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] #对副本排序
>>>
来源:https://www.py.cn/jishu/jichu/30125.html


猜你喜欢
- 很有趣的招聘方式和题目:以下是该次招聘前端开发工程师的聘题解答:小贤是一条可爱的小狗(Dog),它的叫声很好听(wow),每次看到主人的时候
- 即使你没听说过“ * 六度分隔理论”,也很可能听过“凯文 • 贝肯 (Kevin Bacon)的六度分隔值游戏”。在这两个游戏中,目标都是
- 一、说明本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论。运行环境:Win10/Python3.5。分析工具:
- 在本文中,作者介绍了 5 种方法,也许在入门阶段时,我们还不太了解它们,但在实战中这 5 个技巧非常实用。字符串运算字符串本质上也是一种元组
- 一:安装Anaconda和Tensorflow步骤:1:从官方网站下载Anacondahttps://www.anaconda.com/do
- PDO::getAvailableDriversPDO::getAvailableDrivers — 返回一个可用驱动的数组(PHP 5 &
- plt.imshow(image)无法显示图片的解决使用plt.imshow()发现不能显示图片,加了plt.show()也还是不能显示先引
- Fib实例虽然能作用于for循环,看起来和list有点像,但是,把它当成list来使用还是不行,比如,取第5个元素:>>>
- 提到 super,最直接的想法就是它代表了父类,替父类执行某些方法。但是理解也仅止步于此,下面对 super 做进一步理解super 的完整
- 你是否知道JavaScript其实也是一个函数式编程语言呢?本指南将教你如何利用JavaScript的函数式特性。要求:你应当已经对Java
- 实例如下所示:import matplotlib as mtimport numpy as np y=[7,0,0,0,0,0,1,25,9
- 一、环境准备1、安装node.js下载地址:https://nodejs.org/zh-cn/界面展示2、检查node.js版本查看版本的两
- 本文实例讲述了python中enumerate函数用法。分享给大家供大家参考。具体分析如下:今日发现一个新函数 enumerate 。一般情
- 本文重在实践和测试,如果你还不了解Data URI,推荐先阅读秦歌的Data URI 和 MHTML。旺旺点灯(JS)实践经过:因为要对SR
- 原来的题目设想为界面视觉效果的统一性,但是“统一”这个词似乎有点敏感,怕触动萌点无数,而我也无意去设定一个什么什么的统一性来侃侃而谈,极为专
- 前言任何应用都离不开数据,所以在学习python的时候,当然也要学习一个如何用python操作数据库了。MySQLdb就是python对my
- 所谓“评论”不是必须得有文本框,用户录入提交数据才算,广义上的评论包括用户的任何“表态”,典型如打分。我接触电子商务时间并不长,最早应该是0
- 概念df.duplicated()使用df.cuplicated()来查看重复数据,返回True,False,数据类型是bool.也可以指定
- 爬虫就是请求网站并提取数据的自动化程序。其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基本流程爬虫的基本流程发起请求通过HTTP库向
- 简要pyinstaller模块主要用于python代码打包成exe程序直接使用,这样在其它电脑上即使没有python环境也是可以运行的。用法