【C语言】数组练习

【C语言】数组练习

练习1:多个字符从两端移动,向中间汇聚

编写代码,演示多个字符从两端移动,向中间汇聚

练习2、二分查找

在⼀个升序的数组中查找指定的数字n,很容易想到的方法就是遍历数组,但是这种方法效率比较低。

比如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让

你猜,你会怎么猜?你会1,2,3,4...这样猜吗?显然很慢;⼀般你都会猜中间数字,比如:150,然

后看大了还是小了,这就是⼆分查找,也叫折半查找。(查找的前提是数据是有序的

下面是代码示例:

c 复制代码
#include <stdio.h>
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int left = 0;
	int right = sizeof(arr) / sizeof(arr[0]) - 1;
	int key = 3;
	int mid = 0;
	int find = 0;
	while (left <= right)
	{
		mid = (left + right) / 2;
		if (arr[mid] > key)
		{
			right = mid - 1;
		}
		else if (arr[mid] < key)
		{
			left = mid + 1;
		}
		else
		{
			find = 1;
			break;
		}
	}
	if (1 == find)
	{
		printf("恭喜您找到了,下标是%d\n", mid);
	}
	else
	{
		printf("找不到\n");
	}
	return 0;
}
相关推荐
OPEN-F14 小时前
Python进阶教程:单元测试与代码质量
开发语言·python·单元测试
阿里嘎多学长14 小时前
2026-08-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
其实防守也摸鱼14 小时前
Codex破局:前端组件秒级生成的技术文章大纲
开发语言·前端·人工智能·学习·安全·web安全
_Narcissus_14 小时前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举
Logintern0914 小时前
装饰器和洋葱模式的区分
开发语言·python·架构
冻柠檬飞冰走茶14 小时前
《数据结构实验指导-C++语言版》 在顺序表 list 中查找元素 x
开发语言·数据结构·c++·算法·list
Brilliantwxx14 小时前
【C++】 高阶数据结构图(1)并查集
开发语言·数据结构·c++
lancyu14 小时前
# Agent Loop:AI Agent 的唯一直心骨
开发语言·javascript·人工智能
frjc15 小时前
阿里云 ACK 环境 Arthas 在线调试指南
开发语言·python
老当益壮梁奶奶16 小时前
Linux软件编程学习笔记(二)Linux文件IO编程入门:从fopen到fgetc
linux·c语言·c++·笔记·学习