基本思想:简单选择排序就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换值。
Continue reading
Category Archives: CODING
希尔排序
希尔排序相当于直接插入排序的升级(分组插入排序),又称缩小增量排序,同属于插入排序类,不是稳定的排序算法。
比直接插入排序快的原因:
刚开始的时候间隔较大, 每个组里面的数据较少,排序很快
;当分隔加大的时候, 每组的数据变多, 但是因为已经有了前面的工作,数据接近于有序, 所以也很快
基本思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下,效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。 Continue reading
冒泡排序
初级版冒泡排序
冒泡排序算法为一种比较排序算法(还有快速排序),较小的数字如同气泡般慢慢浮到上面,所以称为冒泡排序。为就地排序,稳定。
算法思想:两两比较相邻记录的关键字,如果反序则交换,知道没有反序的记录为止。 Continue reading
插入排序
直接插入排序
插入排序是对少量元素进行排序的有效算法,各个数字是原地排序,插入排序是稳定的。
算法思想:将一个元素通过和当前已经排序好的数组的最大元素进行比较,并在待插入数组较小的情况下通过设置哨兵,整体移动,插入正确位置,从此得到一个新的排序好的数组的过程。
算法导论中的伪代码:
△INSERT-SORT(A)
for j ← 2 to length[A]
do key ← A[j]
△Insert A[j] into the sorted sequence A[1..j-1].
i ← j-1
while i>0 and A[i]>key
do A[i+1] ← A[i]
i ← i-1
A[i+1] ← key
10年IMDB250高分排行电影下载链接提取(python)
此代码用于提取http://www.zreading.net/671.html网页中10年IMDB250高分排行电影所有下载链接,用于批量导入下载。
# -*- coding: utf-8 -*- import re import urllib url='http://www.zreading.net/671.html' s=urllib.urlopen(url).read() ss=s.replace('\n','') urls=re.findall('<a id="(\S*?) href="(\S*?)" target="_blank">',ss,re.I) for i in urls: print i[1] #urls=re.findall('<a href="(\S*?)" target="_blank">',ss,re.I)
win7设置虚拟WiFi热点
参考地址:http://www.douban.com/note/142037908/
问题描述:
1.如果家中只有一根网线,却有两台或更多台笔记本需要连接到网络;
2.如果家中使用的坑爹的电信,连接到无线信号后还需要使用拨号才能上网,那你的手机啊ipad呀肿么上网捏;
3.如果……
解决方式:将笔记本变身为无线路由器,即“WiFi热点”
使用环境:windows7 Continue reading
Learning Python(4)
chap9 文件和输入输出
1.文件内建函数–open() and file()
file_object = open(file_name,access_mode=’r’,buffering=-1)
access_mode:’r’ ‘w’ ‘a’ ‘U’—‘r’ ‘U’模式打开的文件必须已经存在,’w’模式打开的文件若存在则首先清空,然后重建。
buffering可选参数只是访问文件所采用的缓冲方式。0-不缓冲,1-缓冲一行,>1-使用给定值作为缓冲区大小,不提供参数或给定负值代表使用系统默认缓冲机制。
file()工厂函数,和open()实现相同的功能,建议使用open()来读写文件,在说明处理文件对象时使用file(),eg.if instance(f,file)
ps.UNS(Universal NEWLINE Support,通用换行符支持),当使用’U’标志打开文件时,所有行分隔符,或行结束符通过python的输入方法(read*())返回时都会被替换为换行符\n。 Continue reading
Learning Python(3)
chap7 映像和集合类型
1. 映像类型基本操作
1)创建字典和赋值
>>> dict1={} >>> dict2={'name':'earth','port':80} >>> dict1,dict2 ({}, {'name': 'earth', 'port': 80})
工厂方法dict()创建字典
>>> fdict=dict((['x',1],['y',2])) >>> fdict {'y': 2, 'x': 1}
内建方法fromkeys()创建一个“默认”字典,字典中元素具有相同的值(如果没给出,默认为None)
>>> ddict={}.fromkeys((‘x’,’y’),-1) >>> ddict {‘y’: -1, ‘x’: -1} >>> >>> edict={}.fromkeys((‘foo’,’bar’)) >>> edict {‘foo’: None, ‘bar’: None}
2)访问字典中的值
>>> for key in dict2.keys(): ... print 'key=%s,value=%s' %(key,dict2[key]) ... key=name,value=earth key=port,value=80
Learning Python(2)
Chap4 python对象
1.Python标准类型:
数字
Integer整型
Boolean布尔型
Long integer长整型
Floating point real number浮点型
Complex number复数型
String字符串
List列表
Tuple元组
Dictionary字典
2.Python其他内建类型
类型
Null对象(None)–没有什么有用的属性,布尔值总是False
文件
集合/固定集合
函数/方法
模块
类 Continue reading
Learning Python(1)
Chap1
1. Python的爸爸:Guido van Rossum
2. Python的特点:高级、面向对象、可升级、可扩展、可移植性、易学易读易维护、健壮性、高效的快速原型开发工具、内存管理器、解释型和字节编译(字节编译结果是生成一种近似机器语言的中间形式)。
语言分类的维度
一、 High vs. Low
二、 General vs. Targeted
基本指令集适用于广泛的应用,还是只针对特定用途 Continue reading