<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lonelycatcher小站]]></title><description><![CDATA[爱谷歌，爱豆瓣，爱python]]></description><link>https://blog.youkuaiyun.com/lonelycatcher</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lonelycatcher]]></copyright><item><title><![CDATA[贴上自己的一个python写的去c语言注释的小脚本,以备后用]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/8813834</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/8813834</guid><author>lonelycatcher</author><pubDate>Wed, 17 Apr 2013 14:18:40 +0800</pubDate><description><![CDATA[#!/usr/bin/python

import sys

input = sys.argv[1]

fp = open(input,"r")

flag = 0
quote = 0 


for line in fp:
	myline = ""
	length = len(line)
	for index in range(length):
		if flag == 0 and quote =]]></description><category></category></item><item><title><![CDATA[实现守护进程的步骤]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/8613738</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/8613738</guid><author>lonelycatcher</author><pubDate>Tue, 26 Feb 2013 14:54:14 +0800</pubDate><description><![CDATA[守护进程（Daemon）是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如，Internet服务器inetd，Web服务器httpd等。同时，守护进程完成许多系统任务。比如，作业规划进程crond，打印进程lpd等。 
守护进程的编程本身并不复杂，复杂的是各种版本的Unix的]]></description><category></category></item><item><title><![CDATA[最近点对问题]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7973046</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7973046</guid><author>lonelycatcher</author><pubDate>Wed, 12 Sep 2012 22:52:04 +0800</pubDate><description><![CDATA[在二维平面上的n个点中，如何快速的找出最近的一对点，就是最近点对问题。
    一种简单的想法是暴力枚举每两个点，记录最小距离，显然，时间复杂度为O(n^2)。
    在这里介绍一种时间复杂度为O(nlognlogn)的算法。其实，这里用到了分治的思想。将所给平面上n个点的集合S分成两个子集S1和S2，每个子集中约有n/2个点。然后在每个子集中递归地求最接近的点对。在这里，一个关键的问题是如]]></description><category></category></item><item><title><![CDATA[python中中文编码问题]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7959126</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7959126</guid><author>lonelycatcher</author><pubDate>Sat, 08 Sep 2012 22:05:31 +0800</pubDate><description><![CDATA[转自http://www.cnblogs.com/yangze/archive/2010/11/16/1878469.html

编码问题一直是很头痛的问题：
 
当字符串是：'\u4e2d\u56fd' 
>>>s=['\u4e2d\u56fd','\u6e05\u534e\u5927\u5b66']
>>>str=s[0].decode('unicode_escape')  #.e]]></description><category></category></item><item><title><![CDATA[HTML 解析器]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7955581</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7955581</guid><author>lonelycatcher</author><pubDate>Fri, 07 Sep 2012 15:59:11 +0800</pubDate><description><![CDATA[代码托管在google code上

http://code.google.com/p/easy-html-parser/downloads/list]]></description><category></category></item><item><title><![CDATA[<编程之美>求一个整数的二进制表示1的个数]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7944790</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7944790</guid><author>lonelycatcher</author><pubDate>Wed, 05 Sep 2012 09:09:42 +0800</pubDate><description><![CDATA[方法一：最最容易想到的方法，先加上二进制最后一位，通过&1可以得到，然后原数除以二

int getCount(int number)
{
	int ans  = 0;
	while(number)
	{
		ans += num&1;
		num >>=1;
	}
	return ans;
}
方法二：如何消除最后一个1呢，这里我们想到，如何判断一个数是不是2的整数次幂呢，分析一下规律，如]]></description><category></category></item><item><title><![CDATA[三种线性排序算法 计数排序、桶排序与基数排序]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7938847</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7938847</guid><author>lonelycatcher</author><pubDate>Mon, 03 Sep 2012 17:07:49 +0800</pubDate><description><![CDATA[转自：http://www.byvoid.com/blog/sort-radix/

[非基于比较的排序]
在计算机科学中，排序是一门基础的算法技术，许多算法都要以此作为基础，不同的排序算法有着不同的时间开销和空间开销。排序算法有非常多种，如我们最常用的快速排序和堆排序等算法，这些算法需要对序列中的数据进行比较，因为被称为基于比较的排序。
基于比较的排序算法是不能突破O(NlogN)的。简]]></description><category></category></item><item><title><![CDATA[python ftp 下载]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7913879</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7913879</guid><author>lonelycatcher</author><pubDate>Mon, 27 Aug 2012 21:44:17 +0800</pubDate><description><![CDATA[刚学习了《python核心编程》的第十七章，ftp编程，写了一个小脚本下载ftp网站上的全部文件，还没学习多线程编程，后面要给加上多线程下载。from ftplib import FTP
import re
import os


host = 'ftp.neu.edu.cn'
dir_path = '/ebook/python'

def get_filename(string):
    pa]]></description><category></category></item><item><title><![CDATA[python socket编程 半双工聊天]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7912736</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7912736</guid><author>lonelycatcher</author><pubDate>Mon, 27 Aug 2012 16:28:36 +0800</pubDate><description><![CDATA[服务器端：
#!/usr/bin/python

import socket
from time import ctime
import sys

bufsize = 1024

host = '127.0.0.1'
port = 8100
address = (host,port)

server_sock = socket.socket(socket.AF_INET,socket.SOCK_]]></description><category></category></item><item><title><![CDATA[《编程之美》小飞的电梯调度算法]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7910877</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7910877</guid><author>lonelycatcher</author><pubDate>Mon, 27 Aug 2012 10:18:09 +0800</pubDate><description><![CDATA[亚洲微软研究院所在的希格玛大厦一共有6部电梯。在高峰时间，每层都有人上下，电梯每层都停。实习生小飞常常会被每层都停的电梯弄的很不耐烦，于是他提出了这样一个办法：
由于楼层并不算太高，那么在繁忙的上下班时间，每次电梯从一层往上走时，我们只允许电梯停在其中的某一层。所有乘客从一楼上电梯，到达某层后，电梯停下来，所有乘客再从这里爬楼梯到自己的目的层。在一楼的时候，每个乘客选择自己的目的层，电梯则计算出]]></description><category></category></item><item><title><![CDATA[python 处理命令行参数]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7909306</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7909306</guid><author>lonelycatcher</author><pubDate>Sun, 26 Aug 2012 16:18:08 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/byrsongqq/article/details/5623357


本篇将介绍python中sys, getopt模块处理命令行参数

如果想对python脚本传参数，python中对应的argc, argv(c语言的命令行参数)是什么呢？
需要模块：sys
参数个数：len(sys.argv)
脚本名：    sys.argv[]]></description><category></category></item><item><title><![CDATA[由《编程之美》光影切割问题引出的-----求数组逆序数]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7907333</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7907333</guid><author>lonelycatcher</author><pubDate>Sat, 25 Aug 2012 18:28:44 +0800</pubDate><description><![CDATA[编程之美1.7的一道光影切割问题，经过分析之后，可以简化为一个求逆序数的问题，当然求逆序数可以用非常暴力的O(N^2)的解法，但是，如果你正在接受一个面试，给出了O(N^2)的解法的话，面试官一定不会满意，对你的印象也大打折扣，所以这里主要是讲解一些求逆序数的一些高效方法。
以poj上的一道题目为例http://poj.org/problem?id=2299
方法一：分治算法
我们知道排序中]]></description><category></category></item><item><title><![CDATA[python 核心编程第十一章 13题]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7845843</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7845843</guid><author>lonelycatcher</author><pubDate>Thu, 09 Aug 2012 09:15:50 +0800</pubDate><description><![CDATA[分别用不同的方法去实现阶乘，并且用装饰器去计算不同的阶乘的时间，实现很简单，就是装饰器那里有点模糊，装饰函数里面一定要返回装饰器内嵌函数的函数对象。还ti有一点就是time.clock()和time.time()表示什么，C里面clock表示cpu的时钟数，然后通过CLOCKS_PER_SEC计算时间，而python里面貌似没有这么个data,clock表示什么呢，不懂，求解。。
#!/usr/]]></description><category></category></item><item><title><![CDATA[编程珠矶 第十三章 位图的实现]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7836882</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7836882</guid><author>lonelycatcher</author><pubDate>Mon, 06 Aug 2012 21:16:49 +0800</pubDate><description><![CDATA[位图就是用一个比特位去表示一个整数，该位为1，表示此数存在，该为为0，表示此数不存在。使用位图会节省空间，并且查询，插入操作都是O(1)的，效率极高
，当然，如果你设置map的类型为unsigned char *，也是可以的，只不过这时候SHIFT = 3, MASK = 0x7

#include
#include
using namespace std;

#define BITSPER]]></description><category></category></item><item><title><![CDATA[c  语言实现全排列和组合]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7835518</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7835518</guid><author>lonelycatcher</author><pubDate>Mon, 06 Aug 2012 15:32:45 +0800</pubDate><description><![CDATA[求全排列的话有两种方法：
方法一：利用递归，将一个排列看成是以一个数开头＋另外一个子排列,  例如数组list[n]的全排列，以list[i]表示以元素list[i]开头的一个排列，所以所有的排列数为list[0]+list[1]+list[2].......list[n-1],    以list[i]为首元素的排列可以看成是list[i] 为首，加上另外n-1个元素排列的排列。这里每次以lis]]></description><category></category></item><item><title><![CDATA[编程珠玑第十二章  生成有序随机序列]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7834333</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7834333</guid><author>lonelycatcher</author><pubDate>Mon, 06 Aug 2012 10:39:38 +0800</pubDate><description><![CDATA[编程珠玑第十二章的主题是给定0－n-1共n个数，生成m(m
方法一：最容易想到的就是利用C＋＋中的set容器，不断向set中插入rand()%n的数，直到set的size为M，break即可，set容器会自动将元素排序
方法二：是书上给的解法，扫描数组［0，n),然后令remaining = n,select = m,每次成功选择一个数i,则select -1，每次循环remaining--;]]></description><category></category></item><item><title><![CDATA[编程珠玑 第十一章  第9题  从数组中找出第K小的数]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7827182</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7827182</guid><author>lonelycatcher</author><pubDate>Fri, 03 Aug 2012 14:54:28 +0800</pubDate><description><![CDATA[求中位数那题是知道题的特例，求第K小的数，利用快排的划分思想，时间复杂度O(N+N/2+N/4....) = O(N)
void swap(int *a,int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

void qselect(int *list,int left ,int right, int K) // index is K,not th]]></description><category></category></item><item><title><![CDATA[编程珠玑 第十一章 第 六题    选择排序和希尔排序]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7826961</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7826961</guid><author>lonelycatcher</author><pubDate>Fri, 03 Aug 2012 14:26:15 +0800</pubDate><description><![CDATA[选择排序很简单，就是每次从i--N的位置找出最小（最大）的元素放在i处，时间复杂度O(N^2)
希尔排序是插入排序的变形，插入排序就是从第二个元素开始，第i个元素前面的自序列已经是有序的，只要将i元素插入到0－i适当的位置即可，最好情况下是元素list[i]>list[i-1],即不需要移动，最好情况下是数组本来有序，时间复杂度O(N). 希尔排序就是插入排序的增亮模型，通过设置增量减少元素的移]]></description><category></category></item><item><title><![CDATA[编程珠玑 第十一章  第一题 找中位数]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7826586</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7826586</guid><author>lonelycatcher</author><pubDate>Fri, 03 Aug 2012 12:40:10 +0800</pubDate><description><![CDATA[第一题求最小值、最大值和均值显然不用排序，只需要扫描一遍数组即可。关于中值，换个思路思考，就是找排好序的数组中的index为N/2的数，所以方法出来了
方法一：先对数组进行排序，然后直接得到arr[N/2]即为索求的中位数，时间复杂度为O(nlgn)，在这里面如果调用库函数qsort的花费的时间会比自己去写一个排序函数花费更多的时间，qsort最好情况为O(nlgn),所以可以用其他一些严格O(]]></description><category></category></item><item><title><![CDATA[python核心编程 第八章 第10题]]></title><link>https://blog.youkuaiyun.com/lonelycatcher/article/details/7817914</link><guid>https://blog.youkuaiyun.com/lonelycatcher/article/details/7817914</guid><author>lonelycatcher</author><pubDate>Wed, 01 Aug 2012 12:49:24 +0800</pubDate><description><![CDATA[很简单
#!/usr/bin/python

def check(string):
	spe = ['a','i','e','o','u']
	special = len([ch for word in string.split() for ch in word if ch in spe])
	normal = sum([len(word) for word in string.split()]]]></description><category></category></item></channel></rss>