有序序列的查找

简介: 有序序列的查找
#include "stdio.h"
#include<iostream>
#define MAX 100
using namespace std;
int Binary_Search(const int* array, int n, int key)
{
    int low = 1;
    int high = n;
    int mid;
    while (low <= high)
    {
        if (array[0] < array[1])
        {
            mid = (low + high) / 2;
            if (key < array[mid])
                high = mid - 1;
            else if (key > array[mid])
                low = mid + 1;
            else
                return  mid;
        }
        if (array[0] > array[1])
        {
            mid = (low + high) / 2;
            if (key > array[mid])
                high = mid - 1;
            else if (key < array[mid])
                low = mid + 1;
            else
                return  mid;
        }
    }
    return 0;
}
int main()
{
    int MAXSIZE;
    int key;
    cout << "请输入序列的大小: ";
    cin >> MAXSIZE;
    int num[MAX];
    cout << "请输入一个有序序列:本程序仅可实现有序序列的查找(即递增或递减)\n";
    for (int i = 0; i < MAXSIZE; i++)
    {
        cin >> num[i];
    }
    cout << '\n' << "请输入关键字= ";
    cin >> key;
    cout << endl;
    int key_find = Binary_Search(num, MAXSIZE, key);
    if (key_find == 0)
        cout << "没找到!";
    else
        cout << key << "在序列的第" << key_find + 1 << "位!";
    system("pause");
    return 0;
}
相关文章
|
3月前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
3月前
|
C++
给出一个数据序列,建立二叉排序树,并实现插入功能 对二叉排序树进行中序遍历,可以得到有序的数据序列
该文章通过C++代码示例讲解了如何根据输入数据序列构建二叉排序树,并实现插入功能,随后通过中序遍历输出有序的数据序列,展示了对二叉排序树进行操作和遍历的完整过程。
|
5月前
|
算法 C语言
详解用二分法查找有序数据中的指定数字
详解用二分法查找有序数据中的指定数字
35 1
|
5月前
|
算法 编译器
【归并排序】两个有序序列的合并
【归并排序】两个有序序列的合并
有序序列合并
有序序列合并
63 0
|
6月前
|
算法 测试技术 C#
C++二分查找或并集查找:交换得到字典序最小的数组
C++二分查找或并集查找:交换得到字典序最小的数组
|
6月前
|
算法 程序员 索引
【算法训练-二分查找 一】【基本二分】二分查找、在排序数组中查找元素的第一个和最后一个位置
【算法训练-二分查找 一】【基本二分】二分查找、在排序数组中查找元素的第一个和最后一个位置
56 0
|
C语言
【C语言刷题】调整奇数偶数顺序、有序序列合并以及有序序列判断
【C语言刷题】调整奇数偶数顺序、有序序列合并以及有序序列判断
62 0
|
算法
【算法专题突破】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(17)
【算法专题突破】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(17)
59 0
|
人工智能
有序序列中插入一个整数
有序序列中插入一个整数
80 0