当前位置: 首页 > news >正文

Python四种常见实现排序方法,干活教程分享~

文章目录

  • 1.冒泡排序
  • 2.选择排序
  • 3.快速排序
  • 4.插入排序
      • 关于Python技术储备
        • 一、Python所有方向的学习路线
        • 二、Python基础学习视频
        • 三、精品Python学习书籍
        • 四、Python工具包+项目源码合集
        • ①Python工具包
        • ②Python实战案例
        • ③Python小游戏源码
        • 五、面试资料
        • 六、Python兼职渠道


在这里插入图片描述

1.冒泡排序

相邻位置比较大小,将比较大的(或小的)交换位置

def maopao(a):for i in range(0,len(a)):for j in range(0,len(a)-i-1):if a[j]>a[j+1]:temp = a[j+1]a[j+1] = a[j]a[j] = temp#print(a)#print(a)print(a)

2.选择排序

遍历选择一个最小的数与当前循环的第一个数交换

def xuanze(a):for i in range(0,len(a)):k=itemp = a[i]for j in range(i,len(a)):if a[j]<temp:temp = a[j]k = ja[k] = a[i]a[i] = tempprint(a)

3.快速排序

将子段的第一个元素做为中值,先从右向左遍历,如过比中值大high-1,如果比中值小,将这个值放到low那里。

然后从左向右开始遍历,如果左侧的比中值大,将他放到high那里。当low>=high时,将中值的值赋给low

(1.以下为参照公众号中的做法:

a =[7,1,3,2,6,54,4,4,5,8,12,34]
def sort(a,low,high): while low < high:temp = a[low]while low < high and a[high]>=temp:high = high-1a[low]=a[high]while low<high and a[low]<temp:low = low+1a[high]=a[low]           a[low]=tempreturn low
def quicksort(a,low,high):if low<high:middle = sort(a,low,high)quicksort(a,low,middle)quicksort(a,middle+1,high)print(a)
sort(a,0,len(a)-1)
quicksort(a,0,len(a)-1)
print(a)

(2.以下是参照网上的做法:

在做快速排序时一直各种问题,是因为地柜那里没有考虑清楚,一直把low的值赋值为0了,实际上应该是不固定的low值,他每个子循环不定。

a =[7,1,3,2,6,54,4,4,5,8,12,34]
def sort(a,low,high): while low < high:temp = a[low]while low < high and a[high]>=temp:high = high-1while low<high and a[high]<temp:a[low]=a[high]           low =low+1a[high]=a[low]a[low]=tempreturn low
def quicksort(a,low,high):if low<high:middle = sort(a,low,high)quicksort(a,low,middle)quicksort(a,middle+1,high)print(a)
sort(a,0,len(a)-1)
quicksort(a,0,len(a)-1)
print(a)

4.插入排序

从左向右遍历,依次选取数值,从数值的左侧从右向左遍历,选择第一个比他小的数值的右侧插入该数值,其他数值依次向后赋值

#插入排序
a =[7,1,3,2,6,54,4,4,5,8,12,34]
for i in range(0,len(a)-1):temp=a[i+1]j=i+1while j>=0 and temp<a[j-1]:j=j-1     print(j)if j>=-1:k= i+1while k>=j:a[k]=a[k-1]k=k-1print(a)a[j]=temp
print(a)

插入排序方法2,用到了列表的a.insert(1,2)和清楚a[2:3]=[],这样可以少用一个循环

a =[7,1,3,2,6,54,4,4,5,8,12,34]
for i in range(1,len(a)-1):temp=a[i]j=i-1while j>=0 and temp<=a[j]:print(temp)j=j-1if j >=-1:a[i:i+1]=[]a.insert(j+1,temp)print(a)
print(a)

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

相关文章:

  • 【数据结构】链表经典OJ题,常见几类题型(一)
  • django+drf+vue 简单系统搭建 (2) - drf 应用
  • 3D全景技术,为我们打开全新宣传领域
  • HBase导出建表语句
  • 怎样使用ovsyunlive在web网页上直接播放rtsp/rtmp视频
  • GZ038 物联网应用开发赛题第2套
  • 麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包
  • 客户服务质量提升的三种思路
  • C# WebSocket 服务器
  • zookeeper:服务器有几种状态?
  • 顶板事故防治vr实景交互体验提高操作人员安全防护技能水平
  • AI:73-结合语法知识的神经机器翻译研究
  • ChatGPT是什么?黑客试图淹没其服务
  • sqlplus set参数大区
  • Flutter开发实战之上传身份照片并认证
  • 【译】JS基础算法脚本:字符串结尾
  • 《剑指offer》分解让复杂问题更简单
  • github从入门到放弃(1)
  • React-flux杂记
  • Redis 中的布隆过滤器
  • tab.js分享及浏览器兼容性问题汇总
  • TCP拥塞控制
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 我建了一个叫Hello World的项目
  • 消息队列系列二(IOT中消息队列的应用)
  • 找一份好的前端工作,起点很重要
  • 智能网联汽车信息安全
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • (007)XHTML文档之标题——h1~h6
  • (4)Elastix图像配准:3D图像
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (离散数学)逻辑连接词
  • (全注解开发)学习Spring-MVC的第三天
  • (新)网络工程师考点串讲与真题详解
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)【Hibernate总结系列】使用举例
  • (转)视频码率,帧率和分辨率的联系与区别
  • .gitignore文件_Git:.gitignore
  • .NET 4.0中的泛型协变和反变
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 设计模式初探
  • .net2005怎么读string形的xml,不是xml文件。
  • /etc/skel 目录作用
  • @RestControllerAdvice异常统一处理类失效原因
  • @selector(..)警告提示