16
2014
January

关于

ifconfig是*nix下的命常用命令,这也是ifconfiger这个域名的由来。这个博客用来保存一些技术上的文章。 你可以在此留下一些你的评论。

16
2014
January

Flask 源码阅读

flask是python下的一个web框架。类似的框架有很多,比如django,webpy等。本文介绍一下其中的一些源代码。 flask基于werkzeug,使用了werkzeug的很多工具。总的来说,flask(版本号0.10.1)主要文件如下: flask/ __init__.py app.py blueprints.py config.py globals.py json.py 1.__init__.py 这个文件暴露flask的接口,从flask内部、werkzuug导入了很多工具。尤其值得一提的是,flask内部使用的json模块是作者从json.......

13
2014
January

CURD源代码阅读

     ORM(对象关系映射),就是将关系数据库里面的列表映射为对象,从对象的角度对数据库里面的数据进行操作。python下比较常见的是sqlalchemy.而一些非关系数据库中,有的也提供了类似的接口,比如mongodb的mongoalchemy。使用ORM的好处大致来说就是封装了数据库底层的操作,对数据库的读写都是在对象的角度进行的,这简化了编程的复杂程度,同时也使得数据库的迁移变得简单。     关于ORM的好坏,可以看到网上有一堆争论的帖子,各有各的道理,不加评论,这里只是讲一些自己的理解。   &nbsp.......

06
2014
January

python操作符重载

python支持操作符重载,这种重载方式是使用hook实现的。当python调用操作符方法的时候,会去调用指定的__X__()方法,通过对这些方法的重载,可以实现自定义的运算方法。 部分常用的方法如下: 方法名 重载的操作说明 调用的表达式 __init__ 构造函数 class() __del__ 析构函数 释放对象的时候 __add__ “+” x+y __or__ “|” x.......

06
2014
January

排序算法效率对比

本文给出了几种排序算法的效率对比. 涉及到的算法以及具体代码如下: 插入排序 选择排序 冒泡排序 希尔排序 归并排序 快速排序 本次测试平台如下: 操作系统为ubuntu 12.04 32bit. cpu: T6600. cmake:2.8.9   为了测试各个算法的效率,随机生成一个数组队列,每个算法重复对该数组进行排序,计算多次排序使用时间之和并取平均值. 这里,时间函数使用的是C的标准库函数,里面的clock(),可以精确到毫秒级.更加精确的时间获得需要使用操作系统的接口,与平台相关,并且也不是很必要,因此并未列出. 使用.......

06
2014
January

排序算法之Quick Sort

本文介绍快速排序的算法,关于排序算法的效率对比参看这里.   快速排序,即随机从一个数组里面找出一个数,将数组里面小于这个数的放置到数组前端,大于的放置到数组后端,递归进行排序.这是目前已知的,相对比较好的排序算法. 时间复杂度为O(n log n). 代码示例:   /* * sort alogrithm using quick sort */ #include"arrange.h" void quickSort(int * num,int start,int end){ if(start>=end){ re.......

06
2014
January

排序算法之Merge Sort

本文介绍归并排序的算法,关于排序算法的效率对比参看这里.   归并排序,即对于两组已经排序好的数组,将其合成一个数组.对于一列乱序的数组,可以使用分治法处理. 时间复杂度为O(n log n). 代码示例: /* * sort alogrithm using merge sort */ #include"arrange.h" void merge(int *num,int start,int mid,int end){ int *tmpnum=new int[end-start+1]; //copy data to anoth.......

06
2014
January

排序算法之Shell Sort

本文介绍希尔排序的算法,关于排序算法的效率对比参看这里.   希尔排序,是插入排序的一种改进.算法采用不同的步长,将数组分为多个块来进行排序,步长逐步减少,直至1. 时间复杂度为O(n log2n). 代码示例: /* * sort algorithm using shell sort */ #include<cmath> #include"arrange.h" int *sort_shell(int *num ,int length,int exp){ int index,tmp,tmpexp; for(tmp.......

06
2014
January

排序算法之Selection Sort

本文介绍选择排序的算法,关于排序算法的效率对比参看这里.   选择排序,即每次从未排序的队列里面找出最大值,置于数组末端. 时间复杂度为O(n2). 代码示例: /* * sort alogrithm using select sort */ #include"arrange.h" int *sort_select(int *num,int length){ int i,j; int index; int tmp; for(i=0;i<length;i++){ index=i; for(j=i+1;j<.......

06
2014
January

排序算法之Bubble Sort

本文介绍冒泡排序的算法,关于排序算法的效率对比参看这里.   冒泡排序,即每次遍历余下数组,将相邻两个数里面的较大的那个置于后面.每次置换都可以将一个较大数移动到数组的后面,每次遍历都可以将剩余队列里面的最大数置换到队列末端. 排序算法的时间复杂度为O(n2). 代码示例: /* * sort alogrithm using bubble sort */ #include"arrange.h" int *sort_bubble(int *num,int length){ int i,j; int tmp; for(i=0;i&.......

06
2014
January

排序算法之Insertion Sort

本文介绍插入排序的算法,关于排序算法的效率对比参看这里.   插入排序,即将一个数组看作两个部分,排序好的和未排序的,每次从未排序好的队列里面拿出一个数,插入排序好的队列里面. 时间复杂度为O(n2) 代码示例: /* * sort alogrithm using insert sort */ #include"arrange.h" int* sort_insert(int *num,int length){ int i,j; int tmp,index; //increase the boundry of sorted ar.......

06
2014
January

大数之间的计算

 本文给出了针对超大数的运算方法, 包括: GetChar(),获得一个整数的字符串表示 AddBig(),大数之间的加法 MultiplyBig(),大数之间的乘法   char *GetChar(int number); char *AddBig(char *a,char *b); char *MultiplyBig(char *a,char *b); 运算的思想在于将各个整数化作字符串,在一个一个字符的基础上进行运算.   #include<stdlib.h> #include<string.h> #.......

06
2014
January

python 深入import机制

本文章深入介绍了python 包导入的内部机制,讨论了循环导入,相对导入等方面的问题 目录 python包的导入方式 包导入的流程 几个特殊的变量 循环导入 相对导入 sys.path 参考文献   1.python包的导入方式  python 有三种包导入方式: #导入一个包,在局部的命名空间创建一个A的引用. import A from A import * #导入一个包,在局部的命名空间创建a,b,c的引用. from A import a,b,c #内置函数以字符串形式导入模块 A=__import__('A&#.......

03
2014
January

JavaScript解析URL

转载自http://james.padolsey.com/javascript/parsing-urls-with-the-dom/ 网页有时候需要对url进行处理,这个Javascript函数可以实现这一功能。它返回的对象包含了你能够从URL中寻找到的几乎所有信息。 第一步解析URL: // This function creates a new anchor element and uses location // properties (inherent) to get the desired URL data. Some String // operations .......

29
2013
December

公告

2014-10-15 :域名迁移至http://blog.ifconfiger.com ,旧的域名过期之后不再使用。 原版博客在此: http://www.fzleeblog.org 。经过几个月的更新,这个博客的基本功能已经基本完成。但是一些高级功能仍需添加,原有博客的文章也需要导入进来。总的来说这个博客还有很多功能没有实现,但是好歹能用了。最近工作繁忙,这些东西的完成估计至少要等上几个月了。 这个博客的目的在于收集一些技术性的文章,用做参考。 更新日志: 2014-01-05:         &.......