数据结构—再回首01

1.数据结构

  是相互之间存在一种或多种特定关系的数据元素的集合。

逻辑结构:集合结构,线性结构,树形结构,图形机构

物理结构:顺序存储结构,链接存储结构

2.算法

  算法是解决特定问题求解步骤的描述,在计算机中表现为指令有限序列,并且每条指令表示一个或多个操作。

3.时间复杂度计算

  基本操作数量表示成输入规模的函数。

  *常数1取代运行时间中的所有加法常数

  *只保留最高阶项

  *如果最高项存在且不是1,则去除最高项的系数

注意:单纯的分支结构,其时间复杂时也是O(1).

     循环的时间复杂度等于循环体的复杂度乘以该循环运行的次数

O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn

时间: 2024-08-06 11:57:21

数据结构—再回首01的相关文章

(编程训练)再回首,数据结构——二叉树的前序、中序、后序遍历(非递归)

最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会. 希望这些能提供给初学者一些参考. 在VC++6.0下可运行,当初还写了不少注释. 可以和(编程训练)再回首,数据结构--二叉树的前序.中序.后序遍历(递归)对比着看 [问题描述] 根据顺序存储结构建立二叉树的二叉链表,并对二叉树进行先序.中序.后序遍历. [基本要求] ·功能:根据顺序存储结构建立二叉树的二叉链表,并进行先序.中序.后序遍历. ·输入:输入二叉树的顺序存储. ·输出:二叉树的先序.中序.后序遍历序

设计模式之SOLID原则再回首

    本科阶段学过设计模式,那时对设计模式的五大原则--SOLID原则的概念与理解还是比较模糊,此时过去了2年时间,在学习<高级软件工程>课程中老师又提到了设计模式,课程中还详细讨论了五大原则的过程,这次SOLID原则再回首作者提出了一些更通俗的理解吧~ 一. 什么是设计模式?     那么,什么是设计模式呢? 从广义角度讲设计模式是可解决一类软件问题并能重复使用的设计方案; 从狭义角度讲设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述,是在类和对象的层次描述的可重复

再回首,Java温故知新&mdash;&mdash;开篇说明

不知不觉在IT界从业2年了,两年时间足够一个人成长很多,当然也会改变很多事.在这两年时间里,随着对技术的深入了解,知识面的拓展以及工作难度的增大,渐渐的感觉自己技术方面根基不稳,多数问题也只是做到知其然而已.最近打算利用晚上的自由时间再学习一遍Java,所以入手了一本Java经典书籍——<Java核心技术 卷Ⅰ>.而博客也打算开始<再回首,Java温故知新>系列记录自己学习过程中一些要点,希望自己通过这次的学习不仅可以做到知其然,也能做到知其所以然,同时也希望这系列博客可以帮到一些

[再做01背包] POJ 3624 Charm Bracelet

接触动态规划的第一题是数塔问题,第二题就是01背包问题了. 当时看的懵懵懂懂,回过头来再看这道题还是非常简单的了. 用 dp[i][j] 表示取前i种物品,使它们总体积不超过j的最优取法取得的价值总和状态转移方程:dp[i][j] = max(dp[i-1][j],dp[i-1][j-cost[i]]+weight[i]) 1 //#define LOCAL 2 #include <iostream> 3 #include <cstdio> 4 #include <cstri

再回首:细数存储设备的前世今生-转

我们如何迎头赶上? 据IDC统计,今年全球数据总量将达到2.16ZB,预计将在2016年增长到3.77ZB.随着数据量的不断增长,对数据存储的要求也越来越高,不过无须担心,相关的存储技术也已经迎头赶上. 数据存储技术是发展最快的电子技术.磁带,硬盘和固态硬盘的容量大约以每12到18个月就会增加一倍. 如今的台式机硬盘容量已经高达4TB~5TB.这足以装下1万张照片或562小时的高清视频.希捷表示,到2020年热辅助磁记录技术(HAMR)会带来60TB硬盘,这一容量足以存储12万张照片或6750小

JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v

再回首--我的自考之路

vxworks for x86读取bios时间的解决方法 系统时间与bsp有关,在vzworks for x86系列的目标没有直接读取RTC(实时时钟控制器)的函数,用time.h中的函数读到的始终是 00:00:00, Jan. 1 1970. 所以在x86系列的机器中,我们可以从bios中读取当前的时钟.用sysInByte(),sysOutByte(),在70,和71端口读取或写bios里的时间. 首先要分析bios的内容,找出秒,分,时,天,月,年的存放地址. 他们分别是: 0x00,0

再回首,数据结构——线性表、链表上的常见算法

最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会. 希望这些能提供给初学者一些参考. //1.编写算法实现线性表就地逆置的操作 void InverseList (SeqList l) { for (i = 0; i <= (l.length-1)/2; i++) { l.elem[i] <-> l.elem[l.length-1-i]; } } //2.从顺序表中删除自第i个元素开始的k个元素 void DeleteList(SeqList l, int

(编程训练)再回首,数据结构——(升级版)使用栈判断括号匹配

点击打开 基础版 最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会. 希望这些能提供给初学者一些参考. 在VC++6.0下可运行,当初还写了不少注释. /* ********************************************************** * 3-2 * 设在一个算术表达式中允许使用3种括号:圆括号"(".")",方 * 括号"["."]",花括号"