顺序表的时间复杂度分析
1.顺序表的初始化中函数的应用:
L.elem=new ElemType[MAIXSIZE];//为顺序表分配一个大小为MAIXSIZE的数组空间。
运用了C++中的new函数进行动态地址分配。
一般分配模式为:未知量=new 类型名 (列表初值)//列表初值可无。
例:int*p= new int;或int *p=new int (10);
每个new 都要对应一个delete,来释放分配的内存;
L.elem=(int *)malloc(number *size of[MAIXSIZE]) ;//为顺序表分配一个大小为MAIXSIZE的数组空间。
运用了C中的malloc 函数进行动态地址分配。
一般分配模式为:未知量=(类型名)malloc (number*size of(类型));
每一个malloc都要定义一个free 来释放空间。
2.取值
基本语句:e=L.elem[i-1];
时间复杂度为O(1);
3.查找
基本语句:
for(i=0;i<L.length;i++)
if(L.elem[i]==e)return i+1;
ASL=,省略n的系数1/2,后得平均时间复杂度为O(n);
4.插入
基本语句:
for ( j=L.length -1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
共有(n+1)个位置可以插入,概率为,则期望值为
,结果为n/2。n的系数为1/2,省略系数则时间按复杂度为O(n);
5.删除
基本语句:
for(j=1;j<=L.length-1;j++)
L.elem[j-1]=L.elem[j];
假设删除第i个元素,则移动n-i个元素。期望为:,共有n个元素,概率为1/n,结果为n-1/2,取数量级为时间复杂度O(n)。
顺序表的时间复杂度分析相关推荐
- 数据结构-顺序表结构的实现C语言(全代码)
课程设计题目 设计出顺序表结构的相关函数库,以便在程序设计中调用. 题目要求 (1)包括线性表的各种基本函数以及常用函数(自己确定函数.函数形式及理由) (2)最好能借助语言环境实现图形显示功能,以便 ...
- 一篇看懂顺序表!!(刘欣大佬《码农翻身》特别提及)
顺序表 1.1定义 顺序表是用一段物理地址(内存)连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储.在数组上完成数 据的增删查改. 1.2分类 顺序表一般可以分为: 静态顺序表:使 ...
- c语言输出单链表最大值与最小值,数据结构(C语言版)---顺序表与链表的比较...
1.存取方式 1)顺序表:可以顺序存取,也可以随机存取. 2)链表:只能从表头顺序存取. 2.逻辑结构与物理结构 1)顺序存储:逻辑上相邻,物理位置相邻. 2)链式存储:逻辑上相邻,物理位置不一定相邻 ...
- 数据结构(C语言)顺序表的定义及基本操作
顺序表的定义及基本操作 一.数据结构:顺序表的定义,创建,基本运算,实现 二.全部代码 定义顺序表 #include<stdio.h> #include<malloc.h> # ...
- 顺序表插入算法的时间复杂度以及顺序表常考问题
插入算法的实现思路 假设我们要在第3个位置(i=3)上插入某一个数,顺序表初始化为P=(1,2,3,4,5,6).我们可以根据下面的图示理解整个算法过程. 需要注意的是,插入位置i是表示第几个位置而不 ...
- 从多个角度分析顺序表和链表区别和特点
一. 前言 顺序表和链表由于存储结构上的差异,导致他们有不同的特点,从而适用于不同的场景.虽然他们都属于线性表,但他们的存储结构有着本质的不同: 1. 线性表存储数据,需要预先申请一块存储空间,然后将 ...
- 线性表中数据操作的时间复杂度分析
数据操作的时间复杂度主要由磁盘寻道所消耗的时间所决定,同时在磁盘中通过寻道查找相应数据所需要的时间又由数据在磁盘中的存储形式所影响.想要更加透彻的了解时间复杂度问题,就需要对磁盘的存储原理有一个清楚认 ...
- 栈-顺序表(代码、分析、汇编)
目录: 代码: 分析: 汇编: 代码: SeqList.h #ifndef _SEQLIST_H_ #define _SEQLIST_H_typedef void SeqList;//定义顺序表类型 ...
- 有序表的索引顺序结构查找次数分析
有序表的索引顺序结构查找次数分析 @(算法学习) 为了提高查找效率,对65025个元素的有序顺序表建立索引顺序结构,在最好情况下查找到表中已有元素,平均需要执行(B)次关键字比较. A. 10 B. ...
最新文章
- Docker Swarm Mode 学习笔记(聊聊 replicas)
- java安全编码指南之:文件IO操作
- 机器学习实战 | SKLearn最全应用指南
- TurboMail手机客户端—强大的附件文档阅读能力
- MySQL批量update数据(更新的数据值不同)
- php分页技术的作用,分页原理技术细节剖析(php+mysql)实例
- WM_QUERYENDSESSION与WM_ENDSESSION
- 看图计算机械加工工时,急求机械加工工艺编制和工时定额制定与核算软件!!!...
- MLDn学习笔记 —— JDBC
- android webview 跳转到浏览器,Android WebView或手机浏览器打开连接问题解决办法总结...
- 湖南师范大学2018年大学生程序设计竞赛新生赛 F-小名的回答
- 苏州科技大学的计算机专业怎么样,苏州科技大学怎么样?有什么王牌专业?排名如何?...
- Java Web 开发后续(四)
- 计算机毕业设计基于ssm乒乓球裁判管理系统
- Caused by: java.lang.UnsatisfiedLinkError: Library hello-jni not found“问题解决
- 线性回归的理解与公式推导
- 大连外国语大学linux主机名,大连外国语大学
- php星期代码,PHP星期几获取代码
- 屏蔽QQ群消息的简单方法(转)
- Net framework3.5装不上的解决办法