数据结构和算法的基本概念

我们要想开发出高效率的软件就要建立合适的数据结构和设计较好的算法来提高程序执行效率,而学习数据结构和算法的目的就是提高程序执行效率。 “算法+数据结构=程序”这是某位科学家的观点。
首先是数据结构,数据结构有俩种1、逻辑结构2、物理结构。
数据与数据之间的逻辑结构有三种:
1、 线性结构:结构中的数据元素之间存在着一对一的线性关系。
除了第一个和最后一个数据元素外,每个数据元素只有一个前驱和一个后继数据元素
在这里插入图片描述
2、 树结构:结构中的数据元素之间存在着一对多的层次关系。
除根结点外,每个数据元素只有一个前驱数据元素,可有0个或若干个后继数据元素
在这里插入图片描述
3、 图结构:结构中的数据元素之间存在着多对多的任意关系。
每个数据元素可有0个或若干个前驱数据元素和0个或若干个后继数据元素
在这里插入图片描述
物理结构:简述了数据与数据之间的逻辑结构如何存储在物理存储器中。通常的存储方式有俩种:一、数组的存储结构和顺序表的存储结构。二、链表的存储结构。
算法是对一些特定问题的求解步骤的描述他的指令是有限的序列,每一条指令都是一个或多个操作,一个算法应该具有以下五个重要特性:
⑴ 有穷性:一个算法应包含有限个操作步骤。即一个算法在执行若干个步骤之后应该能够结束,而且每一步都在有限时间内完成
⑵ 确定性:算法中的每一步都必须有确切的含义,不能产生二义性。
⑶ 可行性:算法中的每一个步骤都应该是能有效地执行,并得到确定的结果。
⑷ 输入:所谓输入,是指在算法执行时,从外界取得必要的数据。计算机运行程序的目的是为了进行数据处理,在大多数情况下,这些数据需要通过输入得到。有些情况下,数据已经包含在算法中,算法执行时不需要任何数据,所以一个算法可以有零个或多个输入。
⑸ 输出:一个算法有一个或多个输出,这是算法进行数据处理后的结果。没有输出的算法是毫无意义的。
算法的这些特性可以约束程序设计人员正确地书写算法,从而达到求解问题的预期效果。
还有就是算法设计的要求,算法设计的好坏关乎程序的执行效率,算法的设计必须满足下列四个要求:
⑴ 正确性: 正确性的含义是算法对于一切合法的输入数据都能够得出满足要求的结果,事实上要验证算法的正确性是极为困难的,因为通常情况下合法的输入数据量太大,用穷举法逐一验证是不现实的。所谓的算法正确性是指算法达到了测试要求。
⑵ 可读性: 算法的可读性是指人对算法阅读理解的难易程度,可读性高的算法便于交流,有利于算法的调试和修改。通常增加算法的可读性是在书写算法时采用按缩进格式书写、分模块书写等方法可增加算法的可读性。
⑶ 健壮性: 对于非法的输入数据,算法能给出相应的响应,而不是产生不可预料的后果。
⑷ 效率与低存储量需求: 效率指的是算法的执行时间。对于解决同一问题的多个算法,执行时间短的算法效率高。存储量需求指算法执行过程中所需要的最大存储空间。存储量需求越小的算法效率越高。
好了,数据结构和算法大概就是讲这些东西,以上内容大部分都是来自课程的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven精选系列--三种仓库详解

转载自 Maven精选系列--三种仓库详解仓库分类1、本地仓库本地仓库就是开发者本地已经下载下来的或者自己打包所有jar包的依赖仓库&#xff0c;本地仓库路径配置在maven对应的conf/settings.xml配置文件。<!-- localRepository| The path to the local repository maven will…

【VB测绘程序设计】案例4——简单的四则运算练习Select Case语句的使用(附源码)

【VB测绘程序设计】案例4——简单的四则运算练习(附源码) 文章目录 前言一、界面预览二、程序介绍总结前言 在新手学习VB程序设计中,四则运算是基础,通过设计的TexT、按钮、label等控件,定义变量,实现简单程序的编写,提高对VB程序的入门训练。 一、界面预览 二、程序介…

大牛书单 | 数据库专题好书分享

转自&#xff1a; https://cloud.tencent.com/developer/article/1352074 导语&#xff1a;读书是一生的功课&#xff0c;技术人通过读书实现自我提升&#xff0c;学习优秀技术沉淀。TEG读书会本期特邀腾讯金融云专家工程师李海翔、TEG计费平台部专家工程师雷海林、MySQL数据库…

Maven精选系列--依赖范围、传递、排除

转载自 Maven精选系列--依赖范围、传递、排除添加依赖下面我添加了一个spring-web的依赖&#xff0c;maven就会去下载spring-web的jar包及它依赖的一些jar包。<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spr…

互联网的基本概念

现在大家都在使用互联网&#xff0c;但是它的概念你们大概不知道吧&#xff0c;下面我就大概说一下互联网的基本概念。 互联网指Internet,起源于美国&#xff0c;现已发展成为世界上最大的&#xff0c;覆盖全球的计算机网络。计算机网络&#xff08;简称为网络&#xff09;&…

Maven精选系列--继承与聚合

转载自 Maven精选系列--继承与聚合继承什么是继承&#xff0c;我们可以定义项目的父类项目&#xff0c;用于继承父项目的依赖、插件、属性等信息。<parent> <groupId>com.alibaba</groupId> <artifactId>dubbo-parent</artifactId> <version&…

互联网的运输层

上次我们大概的说了一下互联网的基本概念&#xff0c;这次我们来说一下互联网的运输层吧。 运输层就是两个主机之间的传输服务&#xff0c;从通信和信息处理得角度看&#xff0c;运输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同时也是…

jvm MinorGC和查看GC日志

【代码】 public class Page93 {private static final int _1MB 1024 * 1024;public static void main(String[] args) {minorGC(); }/*** vm params: -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:PrintGCDetails -XX:SurvivorRatio8*/private static void minorGC() {byte[] a…

Maven精选系列--过滤不同环境配置文件

转载自 Maven精选系列--过滤不同环境配置文件 背景介绍 项目有开发、测试、生产至少有这三个环境&#xff0c;所需要的配置信息肯定不一样&#xff0c;所以打包的时候可以指定使用哪一个配置文件。 如测试环境使用&#xff1a;mvn package -P test&#xff0c;这时候的${env}的…

jvm内存分配与收回策略

【README】基础知识 1、 Minor GC/新生代GC&#xff1a;指发生在新生代的垃圾收集动作&#xff0c;因为java对象大多都具备朝生夕灭的特性&#xff0c;所以minor gc比较频繁&#xff0c;一般回收速度也比较快&#xff1b; 2、 Major GC/Full GC/老年代GC&#xff1a;发生…

Java递归

无论在哪里相信大家都听说过递归&#xff0c;我也是个初学者&#xff0c;一开始我也是看不懂的&#xff0c;后来才慢慢看懂&#xff0c;现在我就来记录一下我所了解的Java递归是什么。 递归&#xff1a;程序调用自身的编程技巧称为递归&#xff08;recursion&#xff09;&#…

Maven精选系列--常用命令详情

转载自 Maven精选系列--常用命令详情 常用命令 mvn –version mvn -v 显示maven安装版本信息 mvn clean 清理项目打包文件&#xff0c;即项目下的target目录 mvn compile 编译项目下的src/main/Java目录源代码 mvn package 项目打包&#xff0c;在项目target目录下生成编译后的…

2020-10-24

1024徽章 嘤嘤嘤&#xff0c;我TM直接白嫖!

jvm高级特性第4章-虚拟机性能监控与故障处理工具

【4.2】jdk命令行工具 1、jps&#xff1a;虚拟机进程状况工具&#xff1b; C:\Users\pacoson>jps -l // 输出主类名称 12272 sun.tools.jps.Jps 12736 chapter3.Page93 2808C:\Users\pacoson>jps -v // 查看虚拟机进程启动时的参数 12736 Page93 -verbose:gc -Xms20M -…

JSP引入CSS文件无法生效的问题

JSP引入CSS文件无法生效的问题 开发工具与关键技术&#xff1a;eclipse、Java 作者&#xff1a;幻奏 撰写时间&#xff1a;2020.8.8不知道你们有没有碰到这个问题&#xff0c;就是css文件在jsp中无法生效&#xff0c;看解决办法的可以直接看下下面&#xff0c;前面只是我碰到…

Maven精选系列--classifier元素妙用

转载自 Maven精选系列--classifier元素妙用 先来看这么一个依赖 <dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version> </dependency> 看似没问题吧&#xff1f;你觉得能…

IDEA创建Spring配置文件Spring Config的方法

作为刚刚开始学Spring框架的小白&#xff0c;而且我也是刚刚学怎么用idea&#xff0c;不会简单的操作也是很正常的是吧。这个问题其实只是我傻傻的不懂&#xff0c;是个很简单的问题&#xff0c;我现在把它记录下来。 在idea创建maven项目后&#xff0c;我们在左边右键新建xml文…

Maven精选系列--POM文件解析

转载自 Maven精选系列--POM文件解析 之前有介绍到maven的标准目录结构&#xff0c;也看到了maven的核心配置文件pom.xml文件&#xff0c;今天就解析这个配置文件。 maven工程的核心文件就是这个pom文件了&#xff0c;每个工程在创建的时候都会有一个pom.xml配置文件&#xff0c…

JVM参数设置、分析(转)

转自&#xff1a;http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数&#xff0c;可以极大的减少由于GC工作&#xff0c;而导致的程序运行中断方面的问题&a…