这个是个基本的查找算法,因为只是把数读入就需要(N)的时间量,因此我们在说这类问题的时候都是假设读入过的。

在算法常用的时间,将问题缩小为一部分(大约1/2),那么我们就认为这个算法是O(logn)级别的。

先说下对分查找的时间复杂度为O(logn)

前提是已经拍序好的数列。

//
//  main.cpp
//  binarySearch
//
//  Created by Alps on 14-7-24.
//  Copyright (c) 2014年 chen. All rights reserved.
//#include <iostream>int binarySearch(const int A[], int X, int N){int start = 0, end = 0, mid;end = N;while (start <= end) {mid = (start + end)/2;if (X > A[mid]) {start = mid+1;continue;}else if (X < A[mid]){end = mid-1;continue;}else{return mid;}}return -1;
}int main(int argc, const char * argv[])
{int A[]={1 ,4 , 6, 8, 19, 34, 93};int N = sizeof(A)/sizeof(int);int X = 19;int locate = binarySearch(A, X, N);if (locate == -1) {printf("Can't find the element %d\n",X);}else{printf("The element %d is locate in %d\n",X,locate);}return 0;
}

这里面没什么原理。。问题很简单~

算法-对分查找(二分查找)C++实现相关推荐

  1. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  2. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  3. Python查找-二分查找

    Python查找-二分查找 二分查找 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务. 它的基本思想是,将n个元素分成个数大致相 ...

  4. C语言之折半查找(二分查找)

    一.什么是折半查找? 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中 ...

  5. Java实现折半查找(二分查找)的递归和非递归算法

    Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: *     1.要求所查找的数组已有序,并且其 ...

  6. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  7. c语言二分法查找一个数_算法简解-二分查找

    读书不记录=没读,始终是我的信条·····最近因为要参加竞赛,发现自己真的差的很远,所以打算重新开始学习一遍算法及AI的相关数学知识,相信很多人都是闻数学,理工科色变,之前也是觉得上数理课太难了,真的 ...

  8. 算法前戏 递归 二分查找 列表查找

    一.递归 概念: 函数直接或者间接的调用自身算法的过程,则该函数称为递归函数.在计算机编写程序中,递归算法对解决一大类问题是十分有效的. 特点: ①递归就是在过程或者函数里调用自身. ②在使用递归策略 ...

  9. java 二分搜索获得大于目标数的第一位_程序员数据结构算法编程,二分查找搜索算法的原理与应用介绍!...

    本文来讲一种搜索算法,即二分搜索算法,通常在面试时也会被问到. 我们先来看一个例子,在图书馆通常是根据查到的编号去找书,可以在书架上按顺序一本本地查找,也可以找到一本书不符合预期时,再跳过一大部分书再 ...

  10. C++算法五:二分查找(折半)查找

    二分查找是对排序的数据进行排序,查找效率非常高. 2的20次方是100万,就是(1M),折半查找100万个数据只需要20次 2的30次方就是10亿,也就是(1G),折半查找只需要30次 #includ ...

最新文章

  1. Linux通过端口号杀死指定进程
  2. 确定msm8937+android7.1采用的dtb文件
  3. 数据库基本概念 - 表、字段、sql语句
  4. 火爆 GitHub 的 16 张机器学习速查表,值得收藏!
  5. 苏宁大数据怎么运营_【苏宁大数据部门怎么样?进去能学到技术吗?】-看准网...
  6. 常见面试算法:k-近邻算法原理与python案例实现
  7. python中字符串转元组时的小技巧
  8. FreeRTOS学习教程整理
  9. 字符串队列c语言,c语言队列问题
  10. 使用NOPI做Excepl导入导出
  11. FragmentActivity_左右滑动的碎片
  12. 计算机无法从usb启动不了,主板不能从u盘启动怎么办
  13. python语言中整数1010的二进制、八进制_C语言中的二进制数、八进制数和十六进制数...
  14. LNMP架构动态网页
  15. HTML中abbr标记,HTML abbr标记
  16. JavaScript 扁平化数组转成Tree
  17. Mysql数据丢失分析与数据恢复
  18. 实现 JSON.parse
  19. python 连通区域_二值图像连通区域标记
  20. 数学类笔试题(四分位数、数据规约和协方差)

热门文章

  1. odoo报错:from google.ads.googleads.client import GoogleAdsClient ModuleNotFoundError: No module named
  2. 使用 Vim 编写 Tex 文档
  3. 图像增强 imgaug
  4. 专家精讲Oracle数据库管理与维护pdf
  5. python基础语法--python语言及其应用
  6. 华为防火墙查看日志命令_(完整word版)华为USG防火墙运维命令大全,推荐文档
  7. python做邪恶冥刻模组
  8. 陈萱:以全球视野让中国乡村与美丽同行的人
  9. js 快速移除小数点后数字保留整数
  10. 制成U盘启动后U盘容量变小————解决办法!!!!