Category Archives: CODING

希尔排序

希尔排序相当于直接插入排序的升级(分组插入排序),又称缩小增量排序,同属于插入排序类,不是稳定的排序算法。
比直接插入排序快的原因:

  1. 刚开始的时候间隔较大, 每个组里面的数据较少,排序很快
  2. 当分隔加大的时候, 每组的数据变多, 但是因为已经有了前面的工作,数据接近于有序, 所以也很快

基本思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下,效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。 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

Continue reading

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

Continue reading

Learning Python(1)

Chap1

1.  Python的爸爸:Guido van Rossum

2.  Python的特点:高级、面向对象、可升级、可扩展、可移植性、易学易读易维护、健壮性、高效的快速原型开发工具、内存管理器、解释型和字节编译(字节编译结果是生成一种近似机器语言的中间形式)。

语言分类的维度

一、 High vs. Low
二、 General vs. Targeted
基本指令集适用于广泛的应用,还是只针对特定用途 Continue reading