二分算法及分治算法思路

二分算法思想

  1. 利用while循环不停的缩小查找范围,须设置退出循环的条件(查找成功/查找失败)。
  2. 二分算法用于在一段连续的数字段中查找某数(某问题的最优解/)),一般用数组存储待处理的数据,在使用二分算法前,数据必须是有序的。

分治算法思想

1.分治算法也要用到递归的思想,即将一个大的问题通过递归不断缩小问题的规模。要注意问题的最小规模时的情形,这时一般时递归函数的出口,同时也要搞清楚对最小规模问题应进行哪些操作。
2.一般的分治问题都会选择用数组存储数据,在函数内部难免会用定义一些指针(int i ,j),常常会在一些改变指针的过程中造成数组越界的情况。最好在对最小规模问题进行编码前,先画图,演示指针的变化过程,这样才不容易出错。
3.设置分治算法的函数一般会需要3个参数:(存原始数据的数组,另两个则表示对数组的那一段进行操作),有时还会用到一个中间数组,用于存储中间数据。

总结

  1. 在写函数时,函数的参数,要区分哪些能在函数中改动,哪些不能;对于不能改动的(例如特定情况下定义的操作数组的指针),要在函数内部重新定义一个变量,把参数值赋给这个变量。
发布了8 篇原创文章 · 获赞 1 · 访问量 252

猜你喜欢

转载自blog.csdn.net/weixin_43946167/article/details/104169259