• 算法第二章上机实践报告


    1.实践题目:

    二分查找:输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

    2.问题描述:

    输入格式:

    输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。

    输出格式:

    输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

    输入样例:

    4
    1 2 3 4
    1
    

    输出样例:

    0
    2

    3.算法描述

    运用二分查找方法。

    一、构造二分查找函数:(1)初始化左下标left为0、右下标right为n-1、比较次数count为0、mid为二分查找中间的数。(2)二分查找输入数x,若mid大于或小于x,则继续进行二分查找;若mid正好等于x,则输出mid下标及此时的count值。(3)当left大于right,则证明改有序数列不存在x,输出-1。

    二、在主函数中按要求输入,并调用二分查找函数。

    4.算法时间及空间复杂度分析(要有分析过程)

     由于运用了二分查找法,每次都折半查找,即将问题分为等大的两个小问题,所以时间复杂度为:T(n) = T(n/2) +O(1)=O(logn);由于辅助空间是常数级,所提空间复杂度为O(1)。

    5.心得体会(对本次实践收获及疑惑进行总结)

    这次上机实践和以往不同在于两人合作,一个人打代码,另一个人看着她打代码。两个人发现的问题也比一个人多,有报错时可以更快的找到解决方法,提高了时间效率。虽然二分查找法在大一下学期的数据结构课上学过,但本次上机让我更加清晰的了解了二分法的具体实践。我觉得老师在我们打完一题的代码后,让两人中非打代码的同学讲述一遍算法实现的方法很好,可以检验该同学是否真正理解该算法,及时发现问题所在。

  • 相关阅读:
    linux系统中给数据加上列号
    linux系统中统计指定类型文件大小的总和
    linux系统中awk命令求一列值的最大值、最小值、和及平均值
    R语言中找交集、并集、找不同、判断是否相同
    如何在字符串中加入回车换行,tab字符(关于字符串处理)
    BAPI几个有用的BAPI调用样例
    SAP 中国的咨询合作伙伴
    关于MRP的几个概念
    为什么有人不喜欢标准成本
    ERP系统中的存货计价过程
  • 原文地址:https://www.cnblogs.com/chengyi1102/p/11586471.html
Copyright © 2020-2023  润新知