python代码实现经典排序算法
排序算法在程序中有至关重要的作用, 不同算法的时间复杂度和空间复杂度都有所区别, 这影响着程序运行的效率和资源占用的情况, 经常对一些算法多加练习, 强化吸收, 可以提高对算法的理解, 进而运用到实践中, 以下是常用的一些算法排序思维, 将以最简单的代码块呈现 :
冒泡排序
numbers = [58,35,78,12,6,19,-15,167]
#从小到大
for i in range(len(numbers)-1):#需要比较几轮
for j in range(len(numbers)-1-i): #内部数据比几次
if numbers[j] > numbers[j+1]:
#交换位置
numbers[j],numbers[j+1] = numbers[j+1],numbers[j]
print(numbers)
选择排序
numbers = [58,35,78,12,6,19,-15,167]
for i in range(len(numbers)-1): #要取多少次
index = i
for j in range(i+1,len(numbers)):
if numbers[j] < numbers[index]:
index = j
numbers[i],numbers[index]= numbers[index],numbers[i] print(numbers)
插入排序
numbers = [58,35,78,12,6,19,-15,167]
for i in range(1,len(numbers)):
j = i - 1
if numbers[i] < numbers[j]:
temp = numbers[i]
numbers[i] = numbers[j] j = j -1
while j >= 0 and temp < numbers[j]:
numbers[j+1] = numbers[j]
j = j -1
numbers[j+1] = temp
print(numbers)
希尔排序
numbers = [58,35,78,12,6,19,-15,167]
numLen = len(numbers)
while numLen > 1:
numLen = numLen // 2
for i in range(numLen, len(numbers)):
for j in range(i % numLen, i, numLen):
if numbers[i] < numbers[j]:
numbers[i], numbers[j] = numbers[j], numbers[i]
print(numbers)
快速排序
numbers = [58,35,78,12,6,19,-15,167]
def sorting(begin, end):
if begin > end:
return
b, e = begin, end
pivot = numbers[b]
while b < e:
while b < e and numbers[e] > pivot:
e -= 1
while b < e and numbers[b] <= pivot:
b += 1
numbers[b], numbers[e] = numbers[e], numbers[b]
numbers[b], numbers[begin] = pivot, numbers[b]
sorting(begin, b - 1)
sorting(e + 1, end)
sorting(0, len(numbers) - 1)
print(numbers)
技术交流可以留言评论哦 ! 虚心学习, 不忘初心, 共同奋进 !
python代码实现经典排序算法的更多相关文章
- Python十大经典排序算法
现在很多的事情都可以用算法来解决,在编程上,算法有着很重要的地位,将算法用函数封装起来,使程序能更好的调用,不需要反复编写. Python十大经典算法: 一.插入排序 1.算法思想 从第二个元素开始和 ...
- python 十大经典排序算法
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算法有:插入排序.希尔排序.选 ...
- 用Python实现十大经典排序算法-插入、选择、快速、冒泡、归并等
本文来用图文的方式详细讲解了Python十大经典排序算法 —— 插入排序.选择排序.快速排序.冒泡排序.归并排序.希尔排序.插入排序.桶排序.基数排序.计数排序算法,想要学习的你们,继续阅读下去吧,如 ...
- 经典排序算法总结与实现 ---python
原文:http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/ 经典排序算法在面试中占有很大的比重,也是基础,为了未雨绸缪,在寒假里整理并用P ...
- 经典排序算法及python实现
今天我们来谈谈几种经典排序算法,然后用python来实现,最后通过数据来比较几个算法时间 选择排序 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据 ...
- 十大经典排序算法(python实现)(原创)
个人最喜欢的排序方法是非比较类的计数排序,简单粗暴.专治花里胡哨!!! 使用场景: 1,空间复杂度 越低越好.n值较大: 堆排序 O(nlog2n) O(1) 2,无空间复杂度要求.n值较大: 桶排序 ...
- 经典排序算法的总结及其Python实现
经典排序算法总结: 结论: 排序算法无绝对优劣之分. 不稳定的排序算法有:选择排序.希尔排序.快速排序.堆排序(口诀:“快速.选择.希尔.堆”).其他排序算法均为稳定的排序算法. 第一趟排序后就能确定 ...
- python 经典排序算法
python 经典排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算 ...
- 经典排序算法及总结(python实现)
目录 1.排序的基本概念和分类 排序的稳定性: 内排序和外排序 影响内排序算法性能的三个因素: 根据排序过程中借助的主要操作,可把内排序分为: 按照算法复杂度可分为两类: 2.冒泡排序 BubbleS ...
随机推荐
- Tmux 使用教程 on Fedora 28
Tmux 和 gun/screen 都是优秀的终端复用软件,它的关键的好处就是,保持ssh 登录连接session不中断,并且能支持分屏操作,具备丰富的命令行参数,可以进行动态布局和操作.可以看作为s ...
- Windows XP添加硬盘后系统不能识别(没有任何反应)
解决方法: 1.右键我的电脑--管理--设备管理器--IDE ATA/ATAPI控制器,启用次要IDE通道和主要IDE通道,打开属性,在高级设置里,将设备类型设置为自动检测,重启. 2.硬盘格式为GP ...
- 修改TEMPDB所在的路径
USE master go ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'Path\tempdb.mdf') go AL ...
- 清理 Xcode 10
1,清理 ~/Library/Developer/CoreSimulator/Devices说明:该目录存放当前的所有模拟器,每个标识符代表一台机器,清理掉避免存在旧版本的模拟器缓存 执行: 关闭模拟 ...
- 软工实践——团队作业需求规格说明书——原型UI设计
登录界面 还包含忘记密码和注册的功能 注册界面 注册成功后会有弹窗提示,且一个手机号只能注册一次. 忘记密码界面 通过手机收到的验证码更改密码. 项目界面 登陆之后的页面就是这个项目界面.在拥有的界面 ...
- FIO_工具_专业
一.FIO工具安装: 1.查看fio是否安装 [root@localhost /]#rpm –qa|grep fio 2.源码安装(推荐) 官网地址:http://freecode.com/proje ...
- 带有function的JSON对象的序列化与还原
JSON对象的序列化与反序列化相信大家都很熟悉了.基本的api是JSON.parse与JSON.stringify. var json={ uiModule:'http://www.a.com', ...
- Maven 安装源码和文档到本地仓库
一: 1: mvn source:jar 生成源码的jar包 2: mvn source:jar install 将源码安装到本地仓库 ,可以直接mvn source:jar install 一部 ...
- OpenCV——掩膜(又称掩码)mask的原理和作用
一.什么是掩模mask OpenCV中很多函数都带有一个mask参数,mask被称为掩模.图像掩模一般用来对处理的图像(全部或者局部)进行遮挡,来控制图像处理的区域或处理过程. 二.掩模原理 掩模一般 ...
- tarjan 求割点
在无向连通图中,如果将其中一个点以及所连的所有边都删掉,图就不再连通的话,那么这个点就叫做割点 首先将所有的点分为:1.环中点 2.不成环的单点割点一般出现的情况是:如果(处在不同环中/一环一单点/均 ...