软件设计师 上午题#3 数据结构p7 线性结构顺序表

目录

一、线性结构

1.1 线性表,

1.2线性表的存储结构

1.3 顺序表插入的时间复杂度

1.4、顺序表删除的时间复杂度

1.4 顺序表查找跟时间复杂度


 

 

一、线性结构

元素一个接着一个排列

1.1 线性表,

        线性表常采用顺序存储链式存储,主要的基本操作是插入删除查找

 定义:线性表是n(n>=0)个元素的有限序列,非空线性表的特点如下:

(1) 存在唯一一个称作 “第一个” 的元素

(2) 存在唯一一个称作 “最后一个” 的元素

(3) 除第一个元素外,每一个元素有且仅有一个直接前驱(前面有一个元素)

(4) 除最后一个元素外,每一个元素有且仅有一个直接后继(后面跟着一个元素)

只有一个元素,就既是第一个元素,又是最后一个,那么没有前驱后继

1.2线性表的存储结构

         线性表的存储结构分为顺序存储链式存储

        顺序存储:按照顺序存储,一组地址连续的存储单元,所以两个元素逻辑上相邻,物理上也相邻,比较有代表性的就是数组,优点是可以随机访问表中元素,如直接通过数组的下表访问;缺点是插入和删除操作需要移动元素,比如1234,删除一个是134不能空一个位置变1  34,插入同理

还有期望值分别为:软件设计师 上午题#3 数据结构p7 线性结构顺序表_第1张图片

 多背多分。

1.3 顺序表插入的时间复杂度

软件设计师 上午题#3 数据结构p7 线性结构顺序表_第2张图片

 时间复杂度一般是看循环,不循环一般就O(1)对吧,这里for循环是将元素往后移。

最好的情况:比如数组有n=7个元素,i是下标,那么我在末尾插入,那么最后一个就是i=7 < k=8  for循环就不运行啦,那么我们的一个时间复杂度就是O(1)

最坏的情况:在我们的第一个元素之前插入,那么有7个元素,就得移动7次,有n个移动n次,时间复杂度就是O(n)

中间插入:时间复杂度也是O(n)

1.4、顺序表删除的时间复杂度

 软件设计师 上午题#3 数据结构p7 线性结构顺序表_第3张图片

最好的情况:删除最后一个元素,没有元素移动,for循环就不用执行,时间复杂度是O(1)

最坏的情况: 删除表头第一个元素,那么就得移动n-1个元素,时间复杂度是O(n)

删除中间: 时间复杂度O(n)

1.4 顺序表查找跟时间复杂度

         顺序表可以随机访问表中元素,什么意思?就是我想访问谁就访问谁,我想去谁家去谁家,那么这里的时间复杂度就是只需要直接查找就可以查找到,无论你查哪个位置的元素,时间复杂度都是O(1)

你可能感兴趣的:(线性表,线性结构,数据结构)