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

算法设计学习10

实验目的及要求:
本查找实验旨在使学生深入了解不同查找算法的原理、性能特征和适用场景,培养其在实际问题中选择和应用查找算法的能力。通过实验,学生将具体实现多种查找算法,并通过性能测试验证其在不同数据集上的表现,进一步提升算法分析与实现的技能。

实验设备环境:
1.微型计算机
2.DEV C++(或其他编译软件)

任务:
折半查找问题。
问题描述:已知 11 个元素的有序数组为(05,13,19,21,37,56,64,75,80,88,92),要求在有序数组中查找关键字为 key 的元素是否存在。
基本要求:
(1) 编写折半查找元素的算法
(2) 编写一个测试主函数。
[算法设计] 程序首先定义了一个有序数组 arr,然后实现了折半查找算法 binarySearch,最后在测试主函数中输入要查找的关键字并调用折半查找函数。程序输出查找结果,指明关键字是否在数组中以及对应的索引位置。
代码如下:

#include <stdio.h>
int binarySearch(int arr[], int n, int key) {
	int low = 0, high = n - 1;
	while (low <= high) {
		int mid = low + (high - low) / 2;
		if (arr[mid] == key)
			return mid; 
		else if (arr[mid] < key)
			low = mid + 1; 
		else
			high = mid - 1;
	}
	return -1; 
}
int main() {
	int arr[] = {5, 16, 19, 28, 37, 56, 66, 75, 80, 86, 97};
	int n = sizeof(arr) / sizeof(arr[0]);
	int key;
	printf("请输入要查找的关键字: ");
	scanf("%d", &key);
	int result = binarySearch(arr, n, key);
	if (result != -1)
		printf("元素 %d 在数组中的索引位置为 %d。\n", key, result);
	else
		printf("元素 %d 在数组中未找到。\n", key);
	return 0;
}

相关文章:

  • 明年做哪些网站致富连云港seo优化公司
  • 网站建设企业宣传微博seo营销
  • 美国做试管婴儿 网站怎么做好市场宣传和推广
  • 随州网站建设优化推广渠道怎么推广自己的微信号
  • 挂号网站制作百度推广技巧方法
  • h5做的分销网站搜狗网页搜索
  • React编程高级主题:错误处理(Error Handling)
  • ts基础知识总结
  • Java后端开发流程
  • [ctfshow web入门]burpsuite的下载与使用
  • 每日c/c++题 备战蓝桥杯(小球反弹)[运动分解求解,最大公约数gcd]
  • Java进阶之旅-day05:网络编程
  • 1-SQL server 2022和SSMS的使用案例1
  • 从零构建大语言模型全栈开发指南:附录与资源-2.数据集大全-公开语料库、多模态数据集与领域专用数据源
  • 构建第一个ArkTS应用:Hello World之旅
  • 【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查
  • scala课后总结(5)
  • matlab 计算点云的形心
  • Flask学习笔记 - 项目结构 + 路由
  • C++11观察者模式示例
  • C语言单链表的增删改补
  • 从制造业历史来看,汽车兴,则制造业兴,则国兴,则机器视觉兴
  • 云原生与微服务的关系
  • Git 换行符警告(LF replaced by CRLF)的解决方案
  • 【无人机】PX4 飞控系统架构
  • 【Scratch编程系列】Scratch编程软件界面