有序序列的查找

简介: 有序序列的查找
#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;
}
相关文章
|
4月前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
4月前
|
C++
给出一个数据序列,建立二叉排序树,并实现插入功能 对二叉排序树进行中序遍历,可以得到有序的数据序列
该文章通过C++代码示例讲解了如何根据输入数据序列构建二叉排序树,并实现插入功能,随后通过中序遍历输出有序的数据序列,展示了对二叉排序树进行操作和遍历的完整过程。
|
6月前
|
算法 C语言
详解用二分法查找有序数据中的指定数字
详解用二分法查找有序数据中的指定数字
47 1
|
6月前
|
算法 编译器
【归并排序】两个有序序列的合并
【归并排序】两个有序序列的合并
有序序列合并
有序序列合并
65 0
|
7月前
|
算法 测试技术 C#
C++二分查找或并集查找:交换得到字典序最小的数组
C++二分查找或并集查找:交换得到字典序最小的数组
|
7月前
|
算法
滑动窗口算法&删除排序数组中重复项
滑动窗口算法&删除排序数组中重复项
|
算法
【算法专题突破】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(17)
【算法专题突破】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(17)
70 0
|
C语言
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。 输入描述: 输入包含三行, 第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。 第二行包含n个整数,用空格分隔。 第三行包含m个整数,用空格分隔。
288 0
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
|
人工智能
有序序列中插入一个整数
有序序列中插入一个整数
85 0