C语言——多个字符从两端向中间汇聚和⼆分查找

多个字符从两端向中间汇聚

设置两个数组,将要从两端向中间移动的字符串放入数组1中,数组2中放入与数组1等长的符号,找到数组元素的左右下标,使用while循环语句,用数组1中的左右元素替换数组2中的左右元素,然后左下标+1,右下标-1,循环往复,直至左下标>右下标,结束循环。

例:

strlen函数求字符串长度,包含的头文件: string.h

示例中strlen(arr1)-1是因为数组下标从0开始。


Sleep函数设置睡眠时间,包含的头文件: windows.h

system函数执行系统命令,包含的头文件:stdlib.h

system("cls")可以调用cls系统命令,清理屏幕上的信息

例:

二分查找(折半查找)

数组元素有序

例:

如果按照上述示例中的代码逐个寻找数字,效率太低,如何提高效率,这时我们就可以使用二分查找。

找出数组元素的左右下标,使用while循环语句,根据左右下标求出数组的中间元素下标,将中间元素与要查找的数字进行比较 ,大于中间元素,左下标=中间元素+1。小于中间元素,右下标=中间元素-1,循环往复。直到找出要查找的数字的元素下标,跳出循环。

中间元素下标如果用(left+ridht)/2 计算,当元素个数过多时,有可能会发生错误,

可以用 left+(right-left)/2 更为准确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值