随笔分类 -  Programming

摘要:#include "stdlib.h"#include "string.h"#include "stdio.h"typedef struct FreTab_s FreTab;struct FreTab_s{ int weight; char c;};typedef struct Node_s Node;struct Node_s{ int weight; char c; Node* pNext; Node* pLeft; Node* pRight;};typedef struct SearchTab_s SearchTab;struc 阅读全文
posted @ 2014-02-11 22:01 平凡之路 阅读(239) 评论(0) 推荐(0)
摘要:编程之美1.6:饮料供货#(Vi,Ci,Hi)(容量、最大数量、满意度)import pdbVi = [1,1,3,4]Ci = [1,1,3,4]Hi = [5,1,3,4]N=4V=5opt=[[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]]#最大满意度rst=[[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]]#选择物品个数rut=[[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], 阅读全文
posted @ 2014-02-10 21:06 平凡之路 阅读(153) 评论(0) 推荐(0)
摘要:通过CAS操作免锁设计:CAS原子 操作(Compare & Set):包含三个操作数,内存值V、旧的预期值 oldval、要修改的新值newval,当且仅当内存V中的值和旧值oldval相同时,将内存V修改为newval。数组队列是一个循环数组,队列少用一个元素,当头等于尾标示队空,尾加1等于头标示队满。数组的元素用EMPTY(无数据,标示可以入队)和FULL(有数据,标示可以出队)标记指示,数组一开始全部初始化成 EMPTY标示空队列。EnQue 操作:如果当前队尾位置为EMPTY,标示线程可以在当前位置入队,通过CAS原子操作把该位置设置为FULL,避免其它线程操作这个位置,操作 阅读全文
posted @ 2014-01-15 22:13 平凡之路 阅读(358) 评论(0) 推荐(0)
摘要:编程之美(2-5)解法2:import randomdef partion(L): div = L[random.choice(range(len(L)))] L0 = [] L1 = [] for value in L: if value >= div: L1.append(value) else: L0.append(value) return (L0,L1)def KBig(k,L): if len(L) k: return KBig(k,L1) else: ... 阅读全文
posted @ 2014-01-08 22:13 平凡之路 阅读(205) 评论(0) 推荐(0)
摘要:编程之美(3-3)许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:1. 修改一个字符 (如 把“a”替换为“b”)。2. 增加一个字符 (如把“abdd”变为“aebdd”)。3. 删除一个字符(如把“travelling”变为“traveling”)。比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。上面的两种方案,都仅需要一次操作。把这个操作所需要的次数定义为两个字符串的距离,而相似度等于“距离+1”的倒数。也就是说,“ab 阅读全文
posted @ 2014-01-02 21:10 平凡之路 阅读(542) 评论(0) 推荐(0)