栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【数据结构实验】查找(二分查找&顺序查找)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【数据结构实验】查找(二分查找&顺序查找)

一、实验目的:

熟悉各种查找算法及其复杂性,能够根据实际情况选择合适的存储结构。

二、实验要求:

1、掌握查找的基本方法。

2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。

三、实验内容与过程

实验内容:

编程分别对有序顺序表的顺序查找,二分查找算法进行实现。

代码如下:

#include
#include
#include
#include

using namespace std;

int n, m;
const int N = 1000010;
int st[N];

int main()
{
	printf("线性表的长度和询问次数"); 
    scanf("%d%d", &n, &m);
    printf("输入这个线性表");
    for (int i = 0; i < n; i++)   scanf("%d", &st[i]);
    for (int i = 0; i < m; i++)
    {
        int l = 0; int r = n - 1;
        int x; scanf("%d", &x);
        printf("二分查找:"); 
        //起始位置的确定
        while (l < r)
        {
            int mid = l + r >> 1;
            if (st[mid] >= x) r = mid;
            else l = mid + 1;
        }
        if (st[l] == x)
        {
            cout<<"这个元素的起始位置是"<< l+1 << " ";
            //最终位置确定
            r = n - 1;
            while (l < r)
            {
                int mid = l + r + 1 >> 1;
                if (st[mid] <= x)l = mid;
                else r = mid - 1;
            }
            cout <<"这个元素的最终位置在"<< r+1 << endl;
        }
        else cout << "不存在该元素" << endl;
        printf("顺序查找:");
        bool flag=true; 
        for(int j=0;j 

运行结果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号