Python算法:选择排序
选择排序、选择排序、选择排序、选择排序、选择排序、选择排序,python实现的选择排序。
运行环境 Runtime environment123操作系统: Windos10 IDE: JetBrains Python 2018.2.4 x64 语言: Python 3.66
背景选择排序,要理解首先得明白什么玩意是数组、什么玩意是链表以及大O表示法~不知道先去百度一下,网上大把多,不解释了。说真的,面试的时候真的会有面试官问我选择排序吗?不一般都是问快排和冒排么?emmmm….
选择排序实现为了方便理解,拆分成两个函数来表示,手动实现。
123456789101112131415161718192021222324252627def find_min(tempArray): tempMin = tempArray[0] # 用来存最小值的 tempMinIndex = 0 # 用来存最小值的下标(索引) print('旧列表:%s'%tempArray) for i in range(1,len(tempArray)) ...
Python算法:快速排序
最近准备去找工作,时隔几年又要把在学校时代压床底的算法掏出来吹吹灰尘了,真有种朝花夕拾的感觉…哈哈哈哈毕竟如果面试要是写不出来,那真是太尴尬了。写那么一波快速排序找找感觉2333也许有人会问,我为啥把所有算法直接写在一起。我就不!因为这样写好查啊…而且不想把自己的博文写得那么冗长。开面见山,直奔主题。
运行环境 Runtime environment123操作系统: Windos10 IDE: JetBrains Python 2018.2.4 x64 语言: Python 3.66
背景快速排序是一种常用得排序算法,比选择排序快得多。例如:C语言标准库得函数qsort的实现就是快速排序。快速排序也使用了D&C。其实我也有点郁闷,我都用了Python还折腾这个干嘛..Python的sorted排序,用的是狂霸酷拽Dior的TimeSort算法。至于TimeSort算法有多牛逼,自己去百度吧。Python有这个原生工具函数在,还要啥自行车啊。23333但是,没办法嘛,面试官要问的咯。
步步实现 快速排序对排序算法来说,最简单的数组是啥样的?那就是根本不需要排序的数 ...
Python算法:插入排序
最近准备去找工作,时隔几年又要把在学校时代压床底的算法掏出来吹吹灰尘了,真有种朝花夕拾的感觉…哈哈哈哈毕竟如果面试要是写不出来,那真是太尴尬了。写那么一波插入排序找找感觉2333
运行环境 Runtime environment123操作系统: Windos10 IDE: JetBrains Python 2018.2.4 x64 语言: Python 3.66
背景基础排序算法的一种咯,回忆一下也好。那要万一用上了呢?而且它是希尔排序的基础..当然希尔排序我也忘得差不多了。
插入排序1234567891011def insert_sort(nums): for i in range(1, len(nums)): # 从第二个元素索引开始遍历 temp = nums[i] # 取出对应索引的元素 last = 0 for j in range(i-1, -1, -1): # 倒着取值,与之前插过的元素逐一比对 if nums[j] > temp: # 若取出的元素前边的元素小,则对换位 ...
小技能GET:Ubuntu18.04安装mongodb数据库
距离上一次使用mongodb数据库了也有很长一段时间,2016年。再不用用,感觉都要忘记怎么用了233,而且应该也有很多更新,这次正好项目也需要。来安装一下,并且做个记录!
运行环境 Runtime environment12操作系统 : Ubuntu18.04LTSSoftware: MongoDB 4.0 Linux x64
背景最近申请试着申请了oneDriver的云盘,弄到手了20TB,所以打算搭建的方便管理它们的一个web管理平台。在这里,经过一番筛选,我排除了不太符合自己需求的几个项目:oneIndex(用的人最多,但是要装php)、pyOne(使用的仍然是python2)。采用CuteOne.这个项目,使用的是python3,我也不用装那么多个语言编译器了,而且操作界面也很符合我的审美!其中这个项目它依赖于mongoDB,所以安装它,并部署。
注意这是个容易让人掉坑的地方。(我掉进去了)mongDB 环境的支持从mongDB官网的说明文档我们可以看到:目前也就是说无论是社区版还是企业版的mongoDB 4.0以下版本都不支持Ubuntu18了,如果装错版本的话,会 ...
Python:URL编码解码
用python3比较强大的Django开发web处理爬虫采集到的某些带URL的数据,发现一些编码问题。
运行环境 Runtime environment12操作系统 : ubuntu 18.04LTSpython : 3.6.8
背景用python3比较强大的Django开发web处理爬虫采集到的某些带URL的数据,
发现一些编码问题,也好解决。做个记录方便自己复制!
编码12from urllib.parse import quotetext = quote(text, 'utf-8')
解码12from urllib.parse import unquotetext = unquote(text, 'utf-8')
总结烂笔头,烂笔头。
下次要用直接趴拉这个博文来复制好了。
Web后端:Django模组ORM多属性更新
有时候我们需要同时(一次性)更新某个用户的多个字段。
运行环境 Runtime environment12345操作系统 : Ubuntu18.04IDE: JetBrains pycharm 2019.2.4 x64Python: 3.6.9Django: 3.0.5djangorestframework: 3.11.0
背景有时候我们需要同时(一次性)更新某个用户的多个字段。
一个个属性的去修改保存太麻烦了,但是架不住django的ORM就是厉害。
项目应用下models.py123456789class magnetInfo(models.Model): mtitle = models.CharField(max_length=255, verbose_name='名称', unique=True) mdate = models.DateTimeField(verbose_name='发布日期', null=True) mpublisher = models.CharField(max_length=255, defa ...
Python:计算绝对值的几种方式
绝对值的计算做个小记录。
运行环境 Runtime environment123操作系统: Windos10 IDE: JetBrains Pycharm 2019.2.4 x64 语言: Python 3.7.4
code1234567891011121314151617181920212223import math def demoTest_value1(): a = float(input('1.请输入一个数字:')) if a >= 0: a = a else: a = -a print('绝对值为:%f' % a) def demoTest_value2(): a = float(input('2.请输入一个数字:')) a = abs(a) print('绝对值为:%f' % a) def demoTest_value3(): a = float(input('3.请输入一个数字:')) ...
随笔:关于mysql数据库的思考
项目上为什么建表时不设置外键?
情景这两日,我一直被某件事情苦恼着。
情景大概是这样的,我需要采集网络小说,建表的时候,我遇到了一个问题。
子表B里到底要不要设定一个外键与主表A联系起来?
分析很多情况下,大多数的考虑肯定就是,当然是要的,这既能提高查询性能,又能节省存储空间,毕竟外键字段只是存储id而已,数据多起来以后,节省空间的效果是显著的。
嗯,没毛病,我就是这样想的。
但是后来,我在开发过程中让我意识到了,由于使用这个外键导致的开发难度的增加了数倍。
在使用爬虫采集数据的时候,由于这个外键的关系,爬虫在插入数据库时,就必须优先插入主表A数据,然后再查询这个主表A某条数据的id,写入子表B的数据的外键字段中,最后再执行子表插入。
原本的数据插入流程变成了:插入→查询→修改→插入
咋一看,这似乎没什么大不了的,但是如果是多线程爬虫的话,这无疑访问数据库的数据就翻了数倍如果数据库庞大的话,查询时间恐怕令人发指。
这之后还要考虑到增量更新的问题,那么这个开发的难度又会更上一层楼了。
所以,我到底要不要选择在这里使用外键,让我很是困扰。
寻找答案于是,找到一篇博文,数据库中使用外键和不 ...
Web前端:基于jquery图片懒加载
对img和div的背景图片进行懒加载。在data-original写入真正的链接。html
12<div data-original="example1.jpg"></div><img data-original="example2.jpg">
javascript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647// 注意: 需要引入jQuery (function() { // 获取window的引用: var $window = $(window); // 获取包含data-original属性的img,并以jQuery对象存入数组: var lazyImgs = $('img[data-original]') ...
Web前端:vue中的slot(插槽)
#未命名插槽slot未命名时,每个标签内都会生成父组件中提供的内容。父组件app.vue
12345678910111213141516171819202122232425<template> <div id='app'> <slottest> <h1>Here might be a page title</h1> <p>A paragraph for the main content.</p> <p>And another one.</p> <p>Here's some contact info</p> </slottest> </div>< ...