当前位置: 首页 > news >正文

查找(无序线性、有序线性、二分查找)

如何在数组上实现查找?(C语言版)

一、实验内容:
1.编写各种查找方法的基本操作函数。
2.调用编写好的函数实现下列操作:
(1)在给定的数组 E[N]={213,111,222,77,400,300,987,1024,632,555}中,调用无序线性表的顺序查找函数进行查找;
(2)调用有序线性表的顺序查找函数进行查找;
(3)调用二分法查找函数进行查找。

二、实现代码:

实验过程:(实验步骤、数据记录及处理)
源代码:
#include<stdio.h>
#include<conio.h>
#define N 10
int E[N] = { 213, 111, 222, 77, 400, 300, 987, 1024, 632, 555 };void s_sort( int e[], int n )   /* e:存储线性表的数组  n:线性表的结点个数 */
{int i, j, k, t;for( i = 0; i < n-1; i++ ) {    /* 控制n−1趟的选择步骤 *//* 在e[i], e[i+1],...,e[n-1]中选键值最小的结点e[k] */for( k = i, j = i + 1; j < n; j++ )if( e[k] > e[j] )k = j;if( k != i ) {      /* e[i]与e[k]交换 */t = e[i];e[i] = e[k];e[k] = t;}}
}int search1( int *k, int n, int key )   /* 无序线性表的顺序查找 */
{int i;for( i = 0; i < n && key != k[i]; i++ );return( i<n ? i : -1 );
}int search2( int *k, int n, int key )   /* 有序线性表的顺序查找 */
{int i;for( i = 0; i < n && key > k[i]; i++ );if( i < n && k[i] == key )return i;return -1;
}
int bin_search( int *k, int n, int key )    /* 二分法查找 */
{int low=0, high=n-1, mid;while( low <= high ) {          /* 查找范围下界不大于上界 */mid = ( low + high ) / 2;   /* 取有序列的中间元素值 */if( key == k[mid] )return mid;         /* 找到键值 */if( key > k[mid] )          /* 键值可能在中值和上界之间 */ low = mid + 1;elsehigh = mid - 1;}return -1;
}void main()
{int i, j;printf( "初始数据序列为:\n" );for( i = 0; i < N; i++ )printf( "%d ", E[i] );printf( "\n输入要查找的关键码" );scanf( "%d", &i );if( ( j = search1( E, N, i ) ) >= 0 )printf( "找到关键字, 位置为%d\n", j+1 );elseprintf( "找不到\n" );getch();s_sort( E, N );printf( "\n顺序排序后数据序列为:\n" );for( i = 0; i < N; i++ )printf( "%d ", E[i] );printf( "\n输入要查找的关键字" );scanf( "%d", &i );if (( j = search2( E, N, i ) ) >= 0 )printf( "找到关键字, 位置为%d\n", j+1 );elseprintf( "找不到\n" );getch();printf( "\n输入要查找的关键字" );scanf( "%d", &i );if( ( j = bin_search( E, N, i ) ) >= 0 )printf( "找到关键字, 位置为%d\n", j+1 );elseprintf( "找不到\n" );getch();
}

三、运行结果
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/554547.html

相关文章:

  • 不同规模企业如何选择与进化营销费用管理?
  • 备案期间网站中小企业
  • .gitignore配置了忽略dist文件夹,但是souretree还是跟踪了dist文件夹的变化怎么解决
  • 网站开发总出现出现404做网站有哪些技术
  • 突破协议壁垒:CCLINK转EtherNet/IP在大型温室罗克韦尔PLC伺服通讯中的实践
  • edu网站一般谁做的网站的seo怎么做
  • 手机触屏网站微信低代码开发平台
  • DAP-Seg:精准解码基因调控赋能科研发现---一种替代ChIP-seq的高效解决方案,让非模式植物研究不再受限
  • 台州临海市建设局网站天琥设计
  • Flink-2.0.0在配置文件中修改.pid文件存储位置及其他默认参数
  • 微擎怎么做网站网站建设中面包屑导航的特点
  • 做的网站 为什么百度搜不到科技类特长生有哪些项目
  • 网站架构图怎么做台州做网站seo的
  • 织梦cms网站建设建筑工程管理系统平台
  • 从真人动作到机器人执行:惯性动捕如何打通数据链路?
  • 重庆网站联盟wordpress装饰公司主题
  • 手机上可以做网站网站的服务器怎么做的
  • AI驱动的算力资产运营变革
  • 生态环境影响评价技术;生物多样性计算方法;生态脆弱度评价;生态保护措施;公路铁路类、机场建设类、水利类等项目生态环评
  • 成都网站建设 erp怎么创建个人微信公众号
  • npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本,解决方法
  • 个人网站制作在线wordpress产品定制插件
  • 辽宁省建设厅注册中心网站wordpress 获取文章id
  • Linux内核中的隐形守护者:深入解读InfiniBand ib_addr_dummy虚拟驱动
  • 上传自己的python工具至PyPI
  • P4592 TJOI2018 异或
  • 案例应聘网络营销做网站推广十大免费软件免费下载
  • Java 学习30:JavaBean 类、测试类与工具类
  • 菏泽网站建设菏泽wordpress顶部栏
  • 网站项目需求文档微信指数查询入口