线性表的查找.docVIP

  • 34
  • 0
  • 约1.94千字
  • 约 4页
  • 2018-11-28 发布于江西
  • 举报
线性表的查找

数据结构实验报告 题目:线性表的查找 姓 名: 陈民厅 学 号: 班 级: 09计算机1班 一、实验题目及目的 1.实验题目:线性表的查找。 2.实验目的:掌握顺序查找和折半查找的基本思想和算法实现。 二、实验设计 1.实验算法设计思路 从表的一端开始,顺序扫描线性表,依次将扫描到的元素的关键字和待找的值作比较,若相等,则查找成功;若整个表扫描完毕,仍未找到其关键字相等的元素,则查找失败 2.数据结构设计 顺序查找: int seq_search(int v[],int n, int key) { int i; for(i=0;in;i++) if(key==v[i]) return i; return -1; } 折半查找: int binarysearch(int v[],int n, int key,int mid){ int low=1,high=n; while (low=high){ mid=(low+high)/2; if(v[mid]==key)return mid; else if(keyv[mid]) high=mid-1; else low=mid+1; } return 0; } 3.核心算法描述 顺序查找: int seq_search(int v[],int n, int key) { int i; for(i=0;in;i++) if(key==v[i]) return i; return -1; } 折半查找: int binarysearch(int v[],int n, int key,int mid){ int low=1,high=n; while (low=high){ mid=(low+high)/2; if(v[mid]==key)return mid; else if(keyv[mid]) high=mid-1; else low=mid+1; } return 0; } 三、运行结果及测试 写出测试用例及屏幕截屏 #include stdafx.h #include stdio.h #includeiostream using namespace std; #define SIZE 10 int seq_search(int v[],int n, int key) { int i; for(i=0;in;i++) if(key==v[i]) return i; return -1; } int binarysearch(int v[],int n, int key,int mid){ int low=1,high=n; while (low=high){ mid=(low+high)/2; if(v[mid]==key)return mid; else if(keyv[mid]) high=mid-1; else low=mid+1; } return 0; } void main(void) { int d[SIZE],key,i,index,mid; printf(input %d numbers:\n,SIZE); for(i=0;iSIZE;i++) scanf(%d,d[i]); printf(input a key you want to search:\n); scanf(%d,key); index=seq_search(d,SIZE,key); if(index=0) printf(seq_search the index of the key is %d.\n,index); else printf(not found\n); int low,high; index=binarysearch(d,SIZE,key,mid); if(index=0) printf(binarysearch the index of the key is %d.\n,index); else printf(not found\n); system (pause); } 四、心得体会 1 数据结构实验报告

文档评论(0)

1亿VIP精品文档

相关文档