码迷,mamicode.com
首页 > 编程语言 > 详细

算法第二章上机实践报告

时间:2018-10-21 13:06:38      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:count   时间   3.x   算法   内容   输出   搜索   收获   ddl   

内容包括:

  1. 实践题目
  2. 问题描述
  3. 算法描述
  4. 算法时间及空间复杂度分析(要有分析过程)
  5. 心得体会(对本次实践收获及疑惑进行总结)

1.实践题目:

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

2.问题描述:

对于给定的n个非降序排列的整数,使用二分查找算法查找给定的x。如果能在这n个数中找到x,则输出它所在的下标及进行二分查找时比较的次数;如果不能在这n个数中找到x,则输出-1和进行二分查找时的比较次数。

3.算法描述:

二分查找算法代码:

int Search(int x,int left,int right,int a[])
{
while(left<=right)
{
count++;
int middle=(left+right)/2;
if(x==a[middle]) return middle;
if(x>a[middle]) left=middle+1;
if(x<a[middle]) right=middle-1;
}
return -1;
}

算法描述:首先,将数组a用middle分成大致相同的两半,然后进行比较,比较时用count来记录比较次数;比较时分成三种情况:1.x==a[middle],直接返回位置middle;2.x>a[middle],则left=middle+1,right不变,继续在数组a的右半部进行搜索;3.x<a[middle],则right=middle-1,left不变,继续在数组a的左半部进行搜索。最终如果找不到x,则返回-1;找到则返回的是x所在的下标。

4.算法时间及空间复杂度分析:

 

算法第二章上机实践报告

标签:count   时间   3.x   算法   内容   输出   搜索   收获   ddl   

原文地址:https://www.cnblogs.com/yilun578663140/p/9824485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!