6大常见排序算法 python实现
1.最快的排序算法:快速排序(不稳定)
每次找基准(一般选第一个),将数组分为大于基准和小于基准两块,然后对每一块递归,直到只剩一个元素,然后返回 左+中+右
2.归并排序
3.冒泡排序
最简单的 o(n2)复杂度,稳定的,、
两两比较,不对就交换
4.堆排序 (不稳定)
讲的比较好
https://www.bilibili.com/video/av18980178?from=search&seid=3518072115040122033
先看视频,再看代码:
https://www.jb51.net/article/139922.htm
5、选择排序 (不稳定)
声明一个变量min_index等于列表的第一个坐标值0
从第一个位置0坐标开始,和它后边所有的元素一一比对,如果发生了后边的值min_index坐标的对应的值更小,则min_index值改为后边那个数的坐标,然后用min_index坐标对应的值再跟后边的数比较,完成全部比对以后,将列表的第一个数和min_index坐标对应的数做一个交换
第一次用6和5比较,5小,min_index改为1,用5和后边的4比,4小,min_index改为2,用4跟3比,3小,min_index改为3,用3跟2比较,2小,min_index改为4,用2和1比较,1小,min_index改为5,比完了,把坐标5对应的值和第一个值交换
min_index=5
a=[1, 5, 4, 3, 2, 6],最小的1放到最前边,
第二步:从坐标1开始,把刚才的逻辑再来一遍:
a=[1, 2, 4, 3, 5, 6]
第三步:从坐标2开始,把刚才的逻辑再来一遍
a=[1, 2, 3, 4, 5, 6]
第四步:从坐标3开始,把刚才的逻辑再来一遍
a=[1, 2, 3, 4, 5, 6]
第五步:从坐标4开始,把刚才的逻辑再来一遍
a=[1, 2, 3, 4, 5, 6]
6.插入排序
插入排序原理很简单,讲一组数据分成两组,我分别将其称为有序组与待插入组。
每次从待插入组中取出一个元素,与有序组的元素进行比较,并找到合适的位置,
将该元素插到有序组当中。就这样,每次插入一个元素,有序组增加,待插入组减少。
直到待插入组元素个数为0。当然,插入过程中涉及到了元素的移动。
6大常见排序算法 python实现相关推荐
- 希尔排序的详细过程_算法系列: 10大常见排序算法(4)希尔排序
本课程是从少年编程网转载的课程,目标是向中学生详细介绍计算机比赛涉及的编程语言,数据结构和算法.编程学习最好使用计算机,请登陆 www.3dian14.org (免费注册,免费学习). 一句 希尔排序 ...
- 数据结构十大经典排序算法--Python
十大经典排序算法 (java实现看这个)https://program.blog.csdn.net/article/details/83785159 名词解释: 1.冒泡排序 2.选择排序 3.插入排 ...
- 十大经典排序算法Python版实现(附动图演示)
来源:大数据DT 本文约5200字,建议阅读10分钟 排序算法是<数据结构与算法>中最基本的算法之一.本文介绍10种常见的内部排序算法,及如何用Python实现. 排序算法可以分为内部排序 ...
- list 排序_十个必知的排序算法|Python实例系列
十大排序: 1.冒泡排序2.选择排序3.插入排序4.希尔排序5.归并排序6.快速排序7.堆排序8.计数排序9.桶排序10.基数排序 完整代码和注释如下 # -*- coding: UTF-8 -*-# ...
- python实现常见排序算法
python实现常见排序算法 快速排序 思想:取出第一个元素把它放到序列的中间某一个正确位置,以它进行分割成左边和右边,再分别对左边和右边进行取元素分割(递归) 递归实现 def quicksort( ...
- python常见排序算法解析
python--常见排序算法解析 算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法,分 ...
- 十大经典排序算法4(Python版本)
文章目录 六.快速排序 六.快速排序 1.快速介绍 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较.在最坏状况下则需要 Ο(n2) 次比较,但这 ...
- 十大经典排序算法1(Python版本)
文章目录 一.排序算法与时间复杂度 二.冒泡排序 一.排序算法与时间复杂度 1.十大排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次 ...
- 按复杂度有效性递减排序_十大经典排序算法:python源码实现,通俗深入讲解
概述 提示:本文上万字,陆陆续续疏理知识点加测试代码,耗时近一个月.阅读时长40分钟左右. 本文将十大经典排序算法进行汇总,从源码实现.复杂度.稳定性进行分析,并对每种排序的特性进行点评.对典型算法, ...
- python经典排序_python实现十大经典排序算法
写在前面 本文参考十大经典排序算法(动图演示),这篇文章有动图显示,介绍的很详细.本文是部分内容有借鉴此博客,用python实现,有一些改进. 各种算法的时间.空间复杂度 1.冒泡排序 1.比较相邻的 ...
最新文章
- 1. 文件系统——磁盘分区、各目录功能、硬盘
- PHP中 base64_decode与base64_encode加密解密函数
- ubuntu18.10无法ping百度
- 漏洞:Client ReDos From Regex Injection
- 使用Sqlserver事务发布实现数据同步
- VMware Workstation安装虚拟机失败
- Hibernate二级缓存存集合对象
- 手机扣费软件大曝光 金山手机卫士帮您免费检测
- Xml和Tomcat
- ASP.NET 分页技术
- 基于python快速实现排列组合算法
- 瑞星杀毒软件 奇虎360杀毒软件 360卫士 百度卫士联手,搞不定弹出广告 恶意广告图标
- 前端Docker教程
- ICML 2022 | 稀疏双下降:网络剪枝也能加剧模型过拟合?
- 厦大C语言上机1378
- python opencv resize函数_python cv2.resize函数high和width注意事项说明
- Linux日志怎么分析
- Android App加载图片内存空间计算
- 以下html标记语言表示网页标题的标记是,第8章 HTML标记语言.ppt
- SRM供应商协同管理系统功能介绍
热门文章
- MFC 序列化的理解及困惑点
- Java并发编程实战之基于生产者消费者模式的日志服务读书笔记
- 计算机解决的气象复杂问题,自动气象站更换时计算机遇到的疑难问题及解决办法...
- Flink 如何支持特征工程、在线学习、在线预测等 AI 场景?
- View.Post()保证UI带你装逼带你飞
- Android支付实践(三)之银联支付功能(客户端+服务端)
- android下在屏幕适配小总结
- ad怎么导入cad的外形尺寸_EPLAN与传统CAD的性能比较分析
- java为什么要设计包装类_Java 为什么需要包装类
- java项目在本地部署_jenkins部署java项目在本地(三)