Spiga

随笔档案 - 2007年9月

最大公约数(Gcd)两种算法(Euclid && Stein) [整理]

2007-09-14 01:13 by 农夫三拳, 6881 visits, 网摘, 收藏, 编辑
摘要:很老的东东了,其实也没啥好整理的,网上很多资料了,就当备用把:-)1. 欧几里德算法和扩展欧几里德算法欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a ... 阅读全文

qsort 要注意的问题

2007-09-04 23:23 by 农夫三拳, 662 visits, 网摘, 收藏, 编辑
摘要:大家竞相转载的 《qsort的七种排序》里面有不少细节问题,由于原版不知道是哪里的,所以部分错误可能是转载人漏掉或者误添的,这个暂且不谈,不过今天在hnu的论坛上看见yiyi的回复才知道原来最大的问题是出在作者的cmp函数里面:intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}这个问题出在 当a是int的最大值(2^31 - 1),b... 阅读全文