2014算法设计与分析分治算法基本思想.docVIP

  • 2
  • 0
  • 约3.68千字
  • 约 5页
  • 2016-12-14 发布于北京
  • 举报

2014算法设计与分析分治算法基本思想.doc

算法基本思想程序4-1-1折半搜索 templateclass T int BinarySearch(T a[], const T x, int n) {//在数组a[0:n-1]中搜索x,数组中的元素满足a[0]=a[1]= … =a[n-1]。 //如果找到x,则返回所在位置(数组元素的下标),否则返回 –1 int left=0; int right=n-1; while(left=right){int middle=(left+right)/2;if(x==a[middle]) return middle;if(xa[middle]) left=middle+1;else right=middle – 1;} return –1; //未找到x } while 的每次循环(最后一次除外)都将以减半的比例缩小搜索范围,所以,该循环在最坏的情况下需要执行次。由于每次循环需耗时,因此在最坏情况下,总的时间复杂性为。 折半搜索算法贯彻一个思想,即分治法。当人们要解决一个输入规模,比如n,很大的问题时,往往会想到将该问题分解。比如将这n个输入分成k个不同的子集。如果能得到k个不同的可独立求解的子问题,而且在求出这些子问题的解之后,还可以找到适当的方法把它们的解合并成整个问题的解,那么复杂的难以解决的问题就可以得到解决。这种将整个问题分解成若干个小问题来处理

文档评论(0)

1亿VIP精品文档

相关文档