Python进阶-算法-快速排序
#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/23 下午1:41. """ #快速排序,递归算法 O(nlogn) list = [4,6,7,82,27,5,4,675,4,67556,565,4] #递归快速排序 def quicksort(list): print('list : {0}'.format(list)) if len(list)<2: return list #基线条件,为空或者只包含一个元素的数组是有序的 mid = list[0]#递归条件 lessmid = [i for i in list[1:] if i<=mid]#小于基准值的元素组成的子数组 biggermid = [i for i in list[1:] if i > mid]#大于基准值的元素组成的子数组 finallylist = quicksort(lessmid)+[mid]+quicksort(biggermid) print('finallylist : {0}'.format(finallylist)) return finallylist quicksort(list)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python基础系列-列表交集并集差集
版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81979449 比如,现在有两个list类型: a = [1,2,3,4] b = [1,2,3] 一. 差集 很明显结果是[4],下面我们说一下具体方法。 ret_list = [item for item in a if item not in b] 还有一种方法 ret_list = list(set(a)^set(b)) 二. 并集 很明显结果是[1,2,3,4],下面是具体方法: ret_list = list(set(a).union(set(b))) 三. 交集 很明显结果是[1,2,3],下面是具体方法: ret_list = list((set(a).union(set(b)))^(set(a)^set(b)))
- 下一篇
Python基础系列-闭包
版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81979656 第一次调用line_conf 外部函数return的是内部函数line的内存地址,也就是line1。第二次line1(5),才是执行的内部函数line,并return了a*x+b的值,此时内部函数是可以用到之前我们传入的变量a和b的,第二次line1(5)传入的变量是x 。 这里有个知识点,就是python的内存机制,它是将一个变量的值放在内存,然后变量名引用这个值的地址。所以两个变量的值相同,可能引用的是同个内存地址噢。 区别在哪呢: 1、普通的函数都是我们传变量进去,执行并返回,引用释放,内存清掉。 2、闭包是将变量绑定给内部函数,然后返回一个内部函数的内存引用。等到我们二次执行该闭包函数的内部函数后,内存才会释放。 #!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/23 下午1:41. """ #装饰器也是一种闭包 #...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址