2019独角兽企业重金招聘Python工程师标准>>>

冒泡排序:

简介

有一列无序的气泡,比较第一个和第二个气泡的大小;如果第二个气泡大,次序不做调整;如果第一个气泡比较大,将这个两个气泡交换位置。
然后接着比较经过上面处理后气泡序列的第二个与第三个气泡,策略同上。
一直这样处理下去,处理完最后一对气泡的时候,整个序列中最大的气泡将交换到最后的位置。

同样的策略处理剩下的n-1个气泡,这样次大的气泡将排在倒数第二位...最后得到由大至小的有序序列。

最优时间复杂度O(n),最差时间复杂度O(n^2),平均时间复杂度O(n^2).

python代码

def bubble_sort(List):for j in range(len(List)-1,0,-1):for i in range(0,j):if List[i]>List[i+1]:List[i],List[i+1]=List[i+1],List[i]return List

快速排序:

简介

在无序数列中,先任选一个作为基准,然后将这些无序的数遍历,比此基准小的放到基准之前,比基准大的放到之后,如此便将数列利用基准分割成两部分。

在得到的两部分无序数列中,递归调用上面策略,最后将得到有序数列。

最优时间复杂度O(nlogn),最差时间复杂度O(n^2),平均时间复杂度O(nlogn).

python代码

def qsort(L):  if len(L) <= 1:return L  return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1] + \  qsort([ge for ge in L[1:] if ge >= L[0]])

转载于:https://my.oschina.net/vincent67/blog/185681

经典排序算法python回顾之一 交换排序相关推荐

  1. 数据结构十大经典排序算法--Python

    十大经典排序算法 (java实现看这个)https://program.blog.csdn.net/article/details/83785159 名词解释: 1.冒泡排序 2.选择排序 3.插入排 ...

  2. 十大经典排序算法Python版实现(附动图演示)

    来源:大数据DT 本文约5200字,建议阅读10分钟 排序算法是<数据结构与算法>中最基本的算法之一.本文介绍10种常见的内部排序算法,及如何用Python实现. 排序算法可以分为内部排序 ...

  3. 数据结构与算法(十二):八大经典排序算法再回顾

    文章出自汪磊的博客,未经允许不得转载 一.排序的理解 提到排序大部分同学肯定第一时间想到int数组的排序,简单啊,所谓排序不就是将int数组按照从大到小或者从小到大排序吗,如果我有个数组存放的不是in ...

  4. list 排序_十个必知的排序算法|Python实例系列

    十大排序: 1.冒泡排序2.选择排序3.插入排序4.希尔排序5.归并排序6.快速排序7.堆排序8.计数排序9.桶排序10.基数排序 完整代码和注释如下 # -*- coding: UTF-8 -*-# ...

  5. 【Python】用Python实现十大经典排序算法

    来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 大家好,我是阳哥. 最近一段时间,我在微信视频号「Python数据之道」上陆陆续续发布了10种经典排序算法的动画实现. 今天,想以 ...

  6. 【算法入门】用Python手写五大经典排序算法,看完这篇终于懂了!

    算法作为程序员的必修课,是每位程序员必须掌握的基础.作为Python忠实爱好者,本篇将通过Python来手撕5大经典排序算法,结合例图剖析内部实现逻辑,对比每种算法各自的优缺点和应用点.相信我,耐心看 ...

  7. 经典排序算法及其Python实现

    写在前面 前面学习了几种典型的数据结构,当然数据结构和算法是密不可分的,算法作为程序的一个重要部分也是在求职面试中屡问不爽的考点,最近我们就来整理一下一些经典的算法,包括排序.查找.图.动态规划等等. ...

  8. 3min利用Python实现9种经典排序算法可视化!(附源代码)

    来源:恋习Python 本文附视频,建议收藏. 本文为你分享实现9种经典排序算法可视化的方法,3分钟即可实现. [导 读]近在某网站上看到一个视频,是关于排序算法的可视化的,看着挺有意思的,也特别喜感 ...

  9. python遍历数组冒泡排序_经典排序算法(冒泡排序,选择排序,插入排序,快速排序,堆排序)python实现...

    最近在复习经典排序算法,自己用python也实现了一下,这里不会涉及到原理(因为网上方法已经很详细啦),就把函数贴上来,可以让大家自己试着运行下,再结合别处的原理也可以更好地理解它们的实现. 如果有错 ...

最新文章

  1. 蓝鸥Unity开发基础——Switch语句学习笔记
  2. 有关线程的相关知识(下)
  3. mybatis对mapper.xml的解析(三)
  4. 转转转![Spring MVC] - 500/404错误处理-SimpleMappingExceptionResolver
  5. php 回调通知 连连支付_php怎么写连连支付退款
  6. 从零开始入门 K8s | 理解容器运行时接口 CRI
  7. java性能调优工具--笔记
  8. 可以自动化部署吗_从自动化测试到持续部署,你需要了解这些!
  9. mysql的底层数据结构_MySQL索引底层数据结构实现原理
  10. dom不刷新 vue 加数据后_vue 数据更新 dom不渲染
  11. python 删除大表数据
  12. 串口与Modbus调试工具
  13. android 歌词 开源,NLyric 网易云音乐歌词自动搜索下载【开源】
  14. 满满干货!15个经典面试问题及答案
  15. python爬虫实战——青果教务网系统,并用xpath提取成绩
  16. 【网络安全学习实践】Windows系统密码破解防护及用户和组管理
  17. 数字孪生医院:一个围绕着智慧医院决策的建模、管理和行动闭环的全新方式...
  18. lssvr matlab,lssvm(最小二乘支持向量机)matlab
  19. Maven打包跳过单元测试
  20. iOS程序员眼中的首次使用产品体验

热门文章

  1. 个人项目一:自动生成四则运算题目的“软件”
  2. 动态调用WebService
  3. 【Linux】Linux 文件中^M字符处理
  4. 最为一个领导,我该怎么领导
  5. 深度卷积网络CNN与图像语义分割
  6. HSI颜色空间及其应用
  7. 京东数据驱动下的个性化推荐
  8. linux下搭建mrbs会议室预定管理系统
  9. Git log高级用法
  10. Datawhale编程——动态规划DP