词条 | 裸搜 |
释义 | 裸搜-SWC(Search Without Clothing,亦称Nude Searching) 这是一种在计算机中解决一些数据规模不大的问题时用的方法。根据不同地区有不同的说法,譬如“暴力搜索法”、“穷举法”等。 这种搜索办法的具体思路就是枚举各个不同的值,从中找到一个答案。下面我们来分析两个最简单的例子。 1、查找一个数 在一格数据库里面存储了很多数据,为了找到这个数据,可以使用裸搜法。具体实现为:从数据库的第一个值开始枚举,当找到需要的值后,返回它,并退出搜索。 这种方法往往只适应数据规模小的问题。如果数据量大了,就不能使用这种方法,否则会导致所需时间过多。比如,腾讯QQ一个号码为999999999用户在登陆时,不可能从10000到999999999一直搜上去,这样的话也就没人会用QQ了。 2、给一串数字排序 在给一串数字排序的时候,裸搜法显得十分简单。但是当数据规模大了时,也不能运用它。 用裸搜的思想去将n个数排成降序,就是先从这串数中找到一个最大的值,放在第一个位;再从这串数里找出第二大的值,放在第二位;……最后从中找出第n大的值,放在第n位。这样就可以将其排成降序了。这个在信息学中也叫做“冒泡排序法”。 总结 裸搜在解决数据规模不大的问题时往往能够节约许多编程时间,而且思维复杂度也不高。可是在解决数据规模大的问题时,就要用到许多优化的算法。比如上面说到的排序,就有“快速排序”、“堆排序”、“二分排序”、“随机排序”等多种更快的排序法,可是编写这些程序所需要的时间和代码量就大大超过了裸搜的排序。因此我们在使用裸搜法的时候,要注意数据规模,若太大,则应该使用优化的算法。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。