随笔分类 -  算法题

摘要:算法思想:分而治之+Hash 1、IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理; 2、可以考虑采用分而治之的思想,按照IP地址的Hash(IP) % 1024的值,把海量IP日志分别存储到1024个小文件中,这样,每个小文件最多包含4MB个IP地址; 这样的话,通过计算IP的 阅读全文
posted @ 2019-01-09 17:57 黄增松 阅读(872) 评论(2) 推荐(1) 编辑
摘要:一、以空间换时间(最高效) 1.声明一个数组a[0]-a[999] 2.for循环这1000个数,将数组中下标与相对应的数相同的设置为个数加1,否则设置为0. (例如,这1000个数中,某个数是555,就把a[555]=1,如果再次出现555,然后a[555]=2,以此类推) 3.数组逆向循环,找出 阅读全文
posted @ 2018-04-03 23:50 黄增松 阅读(2297) 评论(4) 推荐(0) 编辑
摘要:二分查找(也称折半查找)是很常见的一种在数组中查找数据的算法,作为一名程序员是应该必须会的。它的基础思想:获取数组的中间值,将数组分割成两份,利用查找的值跟中间值进行比较,如果查找的值大于中间值,就在数组的右边进行查找;如果查找的值小于中间值,就在数组的左边进行查找。如此循环的执行下去,最终找到符合 阅读全文
posted @ 2017-09-23 23:10 黄增松 阅读(1049) 评论(0) 推荐(0) 编辑
摘要:快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以 阅读全文
posted @ 2017-09-20 23:26 黄增松 阅读(1519) 评论(0) 推荐(0) 编辑
摘要:NSMutableArray *p = [[NSMutableArray alloc] initWithObjects:@"3",@"5",@"4",@"1",@"7",@"6",@"4",nil]; for (int i = 0; i<[p count]; i++) { for (int j=i+ 阅读全文
posted @ 2015-05-31 20:26 黄增松 阅读(439) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示