随笔分类 -  算法

研究的算法以及现成算法总结
摘要:1)参考了网络上的算法,但是那个算法仅仅是用于展示“权重轮循”的意图,在真正的网络下,因为是并行的,所以不可能单纯一个简单的循环可以解决问题。 2)用lock的话性能显然有损失。 3)想了一阵,结合CAS和volatile等细粒度的锁的方式,一个真正可以用软件描述SLB带有权重的算法大概是这个样子( 阅读全文
posted @ 2017-07-12 17:01 Serviceboy 阅读(735) 评论(0) 推荐(0)
摘要:一、Lock: C#中关键字lock(VB.NET中SyncLock,等同于try+finally的Monitor.Enter……Monitor.Exit)。原理是“每次线程进入后锁住当前所有的内存区块等相关区域,由该线程自行处理完毕全部的线程后自动释放”,接着其余线程抢先进入。 优点:最为大众所知 阅读全文
posted @ 2017-07-06 17:50 Serviceboy 阅读(1365) 评论(0) 推荐(1)
摘要:求某个范围内质数的算法一、直接应用质数原理:质数原理:只能被2~其本身-1的任意一个数字,如果都不可以被除尽,那么肯定是质数。源码:static bool IsPrime(int num) { for (int i = 2; i primes = new List(); static bool IsPrime(int num) { for (int i = 0; i < primes.Count; i++) { if... 阅读全文
posted @ 2013-09-01 10:56 Serviceboy 阅读(962) 评论(0) 推荐(0)
摘要:目前有一个字符串(假设是a,b,c,a,a,b,b),要求:1)删除重复的字符,仅保留一个(结果应该是:a,b,c)。2)删除全部重复的字符(只要有重复,就删除,结果为:c)。思路:可以先用一个外循环逐个字符遍历——每次遍历一个字符的时候,判断是否还有其它相同字符(LastIndexOf):对于1:删除其它相同的字符,直到全部删除干净。对于2:在1的基础上,删除自身。同时因为当前元素被删除之后,后一个元素会替补上来,因此循环变量需要自减,代码如下:/// /// 删除冗余字符串算法 /// /// 被操作字符串 /// 是否保留一个重... 阅读全文
posted @ 2013-08-10 17:11 Serviceboy 阅读(1517) 评论(0) 推荐(0)