数组 二分查找

一维数组

数组随着下标的增⻓,地址是由⼩到⼤变化的,并且我们发现每两个相邻的 元素之间相差4(因为⼀个整型是4个字节)。所以我们得出结论:数组在内存中是连续存放的。这就 为后期我们使⽤指针访问数组奠定了基础(在讲指针的时候我们在讲,这⾥暂且记住就⾏)。 数组元素在内存中是连续存放的

二维数组

7.4 初始化时省略⾏,但是不能省略列

 int arr5[][5] = {1,2,3};

int arr6[][5] = {1,2,3,4,5,6,7};

int arr7[][5] = {{1,2}, {3,4}, {5,6}};

数组练习(以下2个练习一个是left+,right--;另外一个查找的前提也是左<=右)

练习1:多个字符从两端移动,向中间汇聚 编写代码,演⽰多个字符从两端移动,向中间汇聚

此种是依次减少#,但是每次while循环得到的结果都会显示

用system,依次对#减少,所得上一层的数在打印1s后运行到system屏幕清除,故每次都会在第一行更新,直到最后全部消除后

这种情况就会打印最后的结果.因为只是屏幕清除,arr2的值并没有变

也可以用sz来写

练习2:⼆分查找

在⼀个升序的数组中查找指定的数字n,很容易想到的⽅法就是遍历数组,但是这种⽅法效率⽐较低。 ⽐如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让 你猜,你会怎么猜?你会1,2,3,4...这样猜吗?显然很慢;⼀般你都会猜中间数字,⽐如:150,然 后看⼤了还是⼩了,这就是⼆分查找,也叫折半查找

如(0+9)/2=4;判断是否大于4这个点;如果大于则进入5~9;

反之进入0~3

用遍历数组

二分查找

用flag是否变化判断是否能查到,并且在二者不相等时不需要打印

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值