用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

柯侧耳倾听者    -  云代码空间

—— 翱翔在Java世界的海洋之上

查找算法

2017-12-26|142阅||

摘要:       查找算法   一、实验目的与要求 在查找算法中,因为我们不知道数组中的元素是否有序,所以我们不可能做到更好,在不同的情况下,我们要选不同的查找算法 二、实验原理 对数组进行遍历,找到要查元素在数组中的位置,并返回对应元素的下标,如果数组

       查找算法

 

一、实验目的与要求

在查找算法中,因为我们不知道数组中的元素是否有序,所以我们不可能做到更好,在不同的情况下,我们要选不同的查找算法

二、实验原理

对数组进行遍历,找到要查元素在数组中的位置,并返回对应元素的下标,如果数组中不存在要查元素,则返回-1

三、预习与准备

1.better_linear_search

#include "stdio.h"

int better_linear_search(int arr[],int len,int key )

{

int i;

for(i=0;i<len;i++)

if(arr[i]==key)

break;

return i;

if(i<len)

return i;

else

return -1;

}

int main()

{

   int array[]={1,3,5,7,9,6,4,2,0};

   printf("%d",better_linear_search(array,9,6));

   return 0;

}

 

2.linear_search

#include "stdio.h"

int linear_search(int arr[],int len,int key)

{

int i;

for(i=0;i<len;i++)

if(arr[i]==key)

break;

return i;

}

int main()

{

  int array[]={1,5,9,7,6,8,3,4,2} ;

  printf("%d",linear_search(array,9,6));

  return 0;

}

 

3.sentinel_linear_search

#include "stdio.h"

int sentinel_linear_search(int arr[],int len,int key)

{

int i;

int last;

last = arr[len-1];

arr[len-1]=key;

for(i=0;i<len;i++)

if(arr[i]==key)

break;

return i;

if(last==key)

return len-1;

else

return -1;

}

int main()

{

int array[]={1,3,7,9,2,4,6,8,5};

printf("%d",sentinel_linear_search(array,9,3));

return 0;

}

 

四、实验过程记载

    在实验当中,虽然遇到了一些问题,让自己不知所措,难以解决,但是随着实验的进行,自己对算法分析与设计有了一定的了解,在老师和同学的细心解答下,我慢慢的解决了在实验当中所遇到的困难,也是自己学习到了更多的知识,操作起来也更加熟练。   

五、实验结论(或总结)

  在这次的学习当中,我掌握了数组元素查找的一些常用的的方法,也学会了很多的查找算法的知识,让我对查找有了基本的认识。所以在今后的学习中,要更加努力掌握更多的知识,更好的学好算法分析语设计这门课程,多于老师和同学交流。

六、实验思考与讨论

 通过这次实验,我明白了仅仅靠自己的学习是不够的,还必需要借助老师和同学的帮助,只有这样,我们才能够学的更好

 

顶 0踩 0收藏
分享到:
更多
文章评论
    发表评论

    个人资料

    • 昵称: 柯侧耳倾听者
    • 等级: 初级设计师
    • 积分: 2220
    • 代码: 64 个
    • 文章: 64 篇
    • 随想: 5 条
    • 访问: 34 次
    • 关注

    标签

    最新提问

      站长推荐