1、请谈一下你对二分法思想的体会 2、结合编程情况汇报

1.二分法基本思想:

   二分法衍生出来有二分查找法,二分排序法,二分合并法等,像二分查找法,设R[low,high]是当前的查找区间,然后找出中间值mid,然后每次利用待查找值和mid相比较,直接去可能存在待查找值得区间去找,就避免浪费时间在不可能存在的区间去找,大大减少了运行时间。接着,二分法思想还用在其他排序上,例如 快速排序,快速排序之所以比冒泡排序快,是因为他用到了二分法的思想,每一轮都先设置好基准值,然后通过一左一右两个哨兵去逐个比较和交换,将大于基准点的数放到基准点的右边,小于的放到左边,是跳跃式的交换。快速排序最差时间复杂度跟冒泡排序是一样的都是O(N^2),但是快速排序的平均时间复杂度为O(NlogN)。这就是二分法的又是所在。

 

2.编程情况:

   二路归并和快速排序这两个算法我的编程,是用了二分法的思想。在编程期间,需要用到大量的交换语句,对递归的运用也要非常熟悉(在快速排序中可能用到递归),像二路归并排序法就是通过不断的拆分和合并去排序,基准数的设置和指针交换的时机由为重要。

posted @ 2018-10-09 09:48  荷里活DJ  阅读(236)  评论(0编辑  收藏  举报