热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

分治-二分搜索

给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。据此容易设计出二分搜索算法:template<classType>

给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x

据此容易设计出二分搜索算法

template

int BinarySearch(Typea[], constType& x, int l, int r)

{

     while (r >= l){

        int m = (l+r)/2;

        if (x == a[m]) return m;

        if (x

        }

    return -1;


算法复杂度分析:

每执行一次算法的while循环, 待搜索数组的大小减少一半。因此,在最坏情况下,while循环被执行了O(logn) 次。

循环体内运算需要O(1) 时间,因此整个算法在最坏情况下的计算时间复杂性为O(logn)




推荐阅读
author-avatar
强伟2502859647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有