程序=数据结构+算法
数据结构:CPU上数据存储的方式,更有益数据的处理的格式。
CPU上的基本存储单元:1 B(字节)=8 bit(比特),1bit是代表2种电平0或1。存一个英文字母需要1个字节,8比特。存一个汉字需要2个字节,16比特。
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
32位操作系统和64位操作系统,64位是指CPU单位时间内可以处理的长度。但是目前很多软件未必支持64位的处理,所以按理64位的处理能力未必是32位处理能力的2倍。
1,数组结构:
在CPU上,数组结构是连续的存储单元,每个存储单元有编号,一个存储单元为1B(字节),通过编号我们可以查取出存储单元内的数据。
在大多数编程语言中数组是要预先定义长度的,在内存中分出一块区域,等宽的连续的存储单元。但是在实际情况下,我们并不知道会处理多少数据,无法预先定义这个数组的长度跟大小。可能的结果:内存资源的浪费或者资源不够,因此数组不够灵活。但是一些高级语言例如python 编译型语言是不需要预先定义大小的,是动态分配内存,Python编程语言有‘垃圾’收回机制,不像偏底层的语言,例如C,需要malloc()和free()函数库来分别分配内存和释放内存空间。
2,指针
指针:在一个存储单元上分出部分来记录其他内存的位置信息。这样的结构可以让我们很容易实现树结构或者图结构。
链表:单链表,双向链表,环形链表。
有了指针后内存的利用更加灵活,减少内存浪费。同时,用一块头指针结构很容易实现插入或删除的操作。但是在查询的时候就没有数组结构来的快数,链表结构每次查询都要从头指针开始。对于删除了的内存单元,CPU会定时的清空着些没有用的指针内存单元,从而节约内存资源。
补充: