Description

在1500个整数中查整数x的位置,这些数已经从小到大排序了。若存在则输出其位置,若不存在则输出-1。

Input

第一行,一个整数x 后面1500行,每行一个整数

Output

一个整数(表示x的位置,若不存在则输出-1)

Sample Input

5
1
2
5
7
.....

Sample Output

3

二分查找板子题 数据已经预先排好

代码能力真的不行,手生的一匹。。

二分查找 核心在折半 用递归写比较简单吧 O(log n)的复杂度

 #define length 1500

 #include <cstdio>
 #include <cmath>
 using namespace std;

 ];

 int midSearch(int left,int right,int mid,int target){
     if (dict[mid]==target){
         return mid;
     }
     if (left>right){
         ;
     }
     if (dict[mid]<target){
         ,right,floor((mid++right)/),target);
     }
     if (dict[mid]>target){
         ,floor((left+mid-)/),target);
     }
 }

 int main(int argc, char const *argv[]){
     //freopen("1083.in","r",stdin);
     //freopen("1083.out","w",stdout);
     scanf("%d",&n);
     ; i <= length; ++i){
         scanf("%d",&dict[i]);
     }
     ,length,floor((+length)/),n);
     printf("%d\n", ans);
     ;
 }

交了十次出错的原因是:

1. 最重要的:文件没删。。。(怕不是要被打死)

2. 调试完的时候length没改回来。。。

2. WA的原因是折半的语句中mid没有+1 和 -1 (这会导致玄妙的错误 可以自己出一个小一点的数据体验一下)

综上,代码能力还是差了太多 而且调试方面也不熟,同志尚待努力。

【大视野入门OJ】1083:数组的二分查找的更多相关文章

  1. 【大视野入门OJ】1099:歌德巴赫猜想

    Description 歌德巴赫猜想大家都很熟悉吧?给一个数,能够分解成两个素数的和.现在要给你一个n,6 <= n < 1000000,让你求他会分解成哪两个素数?如果存在多组解,则要求 ...

  2. java 13-1 数组高级二分查找

    查找: 1.基本查找:数组元素无序(从头找到尾) 2.二分查找(折半查找):数组元素有序 pS:数组的元素必须有顺序,从小到大或者从大到小.以下的分析是从小到大的数组 二分查找分析: A:先对数组进行 ...

  3. Java数据结构和算法总结-数组、二分查找

    前言:在平时开发中数组几乎是最基本也是最常用的数据类型,相比链表.二叉树等又简单很多,所以在学习数据和算法时用数组来作为一个起点再合适不过了.本篇博文的所有代码已上传 github ,对应工程的 ar ...

  4. [19/03/13-星期三] 数组_二维数组&冒泡排序&二分查找

    一.二维数组 多维数组可以看成以数组为元素的数组.可以有二维.三维.甚至更多维数组,但是实际开发中用的非常少.最多到二维数组(我们一般使用容器代替,二维数组用的都很少). [代码示例] import ...

  5. PHP-----二维数组和二分查找

    二维数组由行和列组成.由arr[$i][$j]表示,先后表示行和列,类似于坐标点. 打印二维数组-----通过两次遍历,第一次遍历每一行,第二次遍历每一行的具体元素,并且通过使用count($arr[ ...

  6. [c/c++] programming之路(15)、多维数组和二分查找法,小外挂

    一.多维数组 #include<stdio.h> #include<stdlib.h> void main(){ ][]; int i,j; ; i < ; i++) { ...

  7. [算法][LeetCode]Search a 2D Matrix——二维数组的二分查找

    题目要求 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the ...

  8. Java数组之二分查找

    简单的二分查找 package com.kangkang.array; public class demo03 { public static void main(String[] args) { / ...

  9. BZOJ 2738 子矩阵第k大 | 二维树状数组 整体二分 分治

    BZOJ 2738 "矩阵乘法"(子矩阵第k大) 题意 给出一个矩阵,多次询问子矩阵中第k大的数是多少. 题解 我做这道题之前先照着这道题出了一道题,是这道题的一维版本,在这里:h ...

随机推荐

  1. Bzoj2832 / Bzoj3874 宅男小C

    Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 124  Solved: 26 Description 众所周知,小C是个宅男,所以他的每天的食物要靠外 ...

  2. 基本控件文档-UISlider属性---iOS-Apple苹果官方文档翻译

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址  //转载请注明出处--本文永久链接:http://www.cnblogs.com/C ...

  3. Spring Data JPA 的使用(山东数漫江湖)

    pring data jpa介绍 什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应 ...

  4. application.properties 文件的优先级

    bootstrapProperties #来自configServer的值 commandLineArgs #命令行参数 servletConfigInitParams servletContextI ...

  5. 【转】使用SQL语句创建和删除约束

    转自http://blog.csdn.net/hamber_bao/article/details/6504905 约束的目的就是确保表中的数据的完整性. 常用的约束类型如下: 主键约束:(Prima ...

  6. 另类dedecms后台拿shell

    遇到一个被阉割的后台,发现直接传shell显然不行. 然后就有了下文 添加一个新广告. 插入一句话木马: --><?php $_GET[c]($_POST[x]);?><!-- ...

  7. Linux 入门记录:十八、Linux 系统启动流程 + 单用户修改 root 密码 + GRUB 加密

    一.系统启动流程 一般来说,Linux 系统的启动流程是这样的: 1. 开机之后,位于计算机主板 ROM 芯片上的 BIOS 被最先读取,在进行硬件和内存的校验以及 CPU 的自检没有异常后, BIO ...

  8. python基础===中文手册,可查询各个模块

    http://python.usyiyi.cn/translate/python_352/index.html

  9. EOS.IO技术学习

    如今很火的项目EOS的学习,以下主要的内容是基于白皮书 参考: http://chainx.org/paper/index/index/id/20.html EOS.IO软件引入了一种新的块链架构,旨 ...

  10. printf格式化输出

    基本格式 printf [format] [文本1] [文本2] .. 常用格式替换符 %s 字符串 %f 浮点格式 %c ASCII字符,即显示对应参数的第一个字符 %d,%i 十进制整数 %o 八 ...