使用c++标准库实现二分法查找基本算法

原创 2015年07月10日 18:26:25

使用c++标准库(vector)实现二分法查找基本算法


#include <iostream>

#include <vector>

#include <algorithm>

using namespacestd;

vector<int> numbers;

int target;

int main()   

    void input_numbers();

    void display_squence();

    void look_up_mid();

    input_numbers();

    sort(numbers.begin(),numbers.end());                                            /*排序*/

    display_squence();

    cout<<"please input the number you want to find:"<<endl;

    cin>>target;                                                                                  /*  查找目标  */

    cout<<"the target number is:"<<target<<endl;

    look_up_mid();                                                                               /* 二分法查找  */

   }

void input_numbers()

{

    int input;

    cout<<"please enter squence:"<<endl;

    while(cin>>input)

    {

        numbers.push_back(input);

    }

    cin.clear();                                                    /*刷新流*/

    cin.ignore(1);

}

void display_squence()

{

    auto beg=numbers.begin();

    auto end=numbers.end();

    cout<<"the squnece is:"<<endl;

    while(beg!=end)

    {

        cout<<" "<<*(beg++)<<ends;

}

    cout<<endl;

}

void look_up_mid()  

{

    auto beg=numbers.begin();

    auto end=numbers.end();

    auto mid=numbers.begin()+(numbers.end()-numbers.begin())/2;

    while (beg!=end && *mid!=target)

    {

        if (target<*mid)

            end=mid;

        else

            beg=mid+1;

        

        mid=beg+(end-beg)/2;

        

        

    }

    if(*mid==target)

        cout<<target<<"exits in squence!"<<endl;

    else

        cout<<target<<"does not exit in squence!"<<endl;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++ 标准库 vector list map 基本使用方法 示例程序

C++ 标准库 vector list map 基本使用方法 示例程序在stdafx.h中:#include #include #include #include #include using n...

C++中变量和基本类型,标准库类型以及数组和指针的使用规则

c++是基于c的面向对象程序设计语言,它的开发效率非常高,因此,对于c++的学习,是很必要的。同时,笔者是一个android开发人员,了解c++对于了解android的底层机制是特别有用的。而如果是嵌...

[C/C++]_[初级]_[标准库之几种算法库函数的运用,如字符串查找(字符个数查找)、分隔、删除、替换、排序、字符交换位置、大小写转换等等]

场景:在处理一些复杂的字符时候,我们要对其进行相应的处理才能得到我们想要的结果,包括:文件目录的提取,文件后缀的提取,提取某一个范围内的字符串,不符合规则字符的删除和替换等等。 // test_ar...

[C/C++标准库]_[初级]_[使用算法库函数时需要注意自定义BinaryPredicate和UnaryPredicate]

场景: 1. 算法库的函数参数大部分都定义了一个回调, 用来作为比较判断,排序等,比如replace_if 和 sort. 2. 大部分算法库里的函数基本都需要数据结构是已排序的. 3. 使用某个函数...

不使用C/C++标准库实现的浮点数与字符串相互转换(最给力)

不使用C/C++标准库实现的浮点数与字符串相互转换(最给力)
  • paschen
  • paschen
  • 2017年07月06日 16:13
  • 2922

怎么使用C++标准库来实现二维数组

在编程里,像界面布局是二维的,那么常常使用二维数组来表示界面的元素,那么就需要使用二维的数组,在现在C++肯定是以标准库为基础了,不再使用C的二维数组,那么怎么样做呢?下面就使用vector来实现二维...

重学C++ (一) 变量和基本类型、标准库类型

前言大一的时候我就已经学过C++程序设计了,但是我从来不敢跟别人说我会C++。事实上,平时里大多数时候我用的是C++里面C的部分,偶尔用一下类来封装(其实用struct也可以实现的)。对于C++的特点...

c++Primer笔记1(快速入门、变量和基本类型、标准库类型)

C++ 基础

C++迭代器和标准库算法的注意事项——个人笔记

加油奋斗中.... 最近在看C++ Primer 第四版,陆续记一些自己觉得重要和平时出错过的地方: 1.用于指定范围的两个迭代器实参类型必须完全相同,不能无意间一个用const_iterator,而...

C++标准库—STL算法

STL算法库:#include lambda表达式:使用内嵌匿名函数,不必编写独立函数 [捕捉块] (参数) (可选mutable等) ->return_type{body} mutable将调用标记...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用c++标准库实现二分法查找基本算法
举报原因:
原因补充:

(最多只允许输入30个字)