【计算机科学速成课】[40集全/文字版] - 14.数据结构

(。・∀・)ノ゙嗨,欢迎阅读计算机科学速成课!

上集讲了一些经典算法,比如给数组排序,找图的最短路径,而上集没讲的是,算法处理的数据存在内存里的格式是什么。你肯定不想数据像约翰·格林的大学宿舍一样乱到处都是食物,衣服和纸,我们希望数据是结构化的,方便读取。因此计算机科学家发明了"数据结构"!

 上集已经介绍了一种基本数据结构:,数组(Array)也叫列表(list)或向量(Vector)(在其它编程语言里)数组的值一个个连续存在内存里,所以不像之前,一个变量里只存一个值(比如j=5)我们可以把多个值存在数组变量里,为了拿出数组中某个值,我们要指定一个下标(index),大多数编程语言里,数组下标都从0开始。用方括号[]代表访问数组,如果想相加数组J的第一个和第三个元素,把结果存在变量a,可以写上图这样一行代码,数组存在内存里的方式十分易懂。

为了简单,假设编译器从内存地址1000开始存数组,数组有7个数字,像上图一样按顺序存,写j[0],会去内存地址1000,加0个偏移,得到地址1000,拿值:5。如果写j[5],会去内存地址1000,加5个偏移,得到地址1005,拿值:4,很容易混淆"数组中第5个数"和"数组下标为5的数",它们不是一回事。记住,下标5其实是数组中第6个数,因为下标是从0开始算的,数组的用途广泛,所以几乎所有编程语言都自带了很多函数来处理数组。举例,数组排序函

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值