数据结构从入门到这TM是啥?(一.数据结构)

本文深入探讨数据结构与算法的基础知识,解析数据结构在存储和组织数据中的关键作用,以及算法在解决具体问题时的设计原则与特性。涵盖数据结构的基本功能、常见类型及其优缺点,同时阐述算法的特征、设计原则及评估方法。

(一)数据结构概念

数据结构是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合.
通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高校的间需哦算法和索引技术有关.

一.数据结构的基本功能

  1. 如何插入一条新的数据项
  2. 如何寻找某一特定的数据项
  3. 如何删除某一特定的数据项
  4. 如何迭代的访问各个数据项,一遍进行显示或其他操作

二.常用的数据结构

这几种结构优缺点如下:

在这里插入图片描述

(二)算法

算法最贱单的来说就是解决问题的步骤
在java 中,算法通常都是由类的方法来实现的.前面的数据结构,比如链表为啥插入,删除快,而查找慢,平衡的二叉树插入,删除,查找都快,这都是事先这些数据结构的算法所造成的.

一 算法的五个特征

  1. 有穷性:对于任意一组合法输入值,在执行有穷的步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成.
  2. 确定性:在每种情况下所用执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行.并且在任何条件下,算法都只有一条执行路径
  3. 可行性:算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作有限次实现之.
  4. 有输入:作为算法加工对象的量值,通常体现在算法当中的一组变量.有些输入量需要在算法执行的过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法中.
  5. 有输出:它是一组与"输入"有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法功能

二 算法的设计原则

  1. 正确性: 首选,算法应当满足以特定的"规则说明"方式给出的需求.其次,对算法是否"正确"的理解可以有以下四个层次:
    一.程序语法错误
    二.程序对于机组输入数据能够得出满足需要的结果.
    三.程序对于精心选择的,典型,苛刻且带有掉男性的机组输入数据能够得出满足要求的结果.
    四.程序对于一切合法输入数据都能得到满足要求的结果.
    PS:通常以第三层意义的正确性作为衡量一个算法是否符合标准

  2. 可读性:算法为了人的阅读与交流,其次才是计算机执行.因此算法应该异与人的理解;另一方面,灰色难懂的程序易于隐藏较多的错误而难以调试.

  3. 健壮性: 当输入的数据非法时,算法应当恰当的做出反应或或进行相应处理而不是产生莫名其妙的输出结果.并且,处理出错的方法不应是终端程序执行,而是应当返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理.

  4. 高效率与低存储量需求:通常算法效率值是算法执行时间;存储量是指算法执行过程中所需要的最大存储空间,两者都与问题的规模有关.

    相对(relatice):你只能比较相同的事物.你不能把一个做算乘法的算法和排序整数列表的算法进行比较.但是,比较两个算法所做的算数操作(一个做乘法,一个做加法)将会告诉你一些有意义的东西.

    表示(representation):大O(用它最简单的形式)把算法间的比较怕简化为了一个单一变量.这个变量的选择基于观察或假设.例如,排序算法之间的对比通常是基于比较操作(比较2个节点来决定这两个节点的相对顺序).这里就假设了比较操作的计算开销很大.但是,如果比较操作的计算机开销不大,而交换的计算机开销很大,又会怎么样呢?这就改变了先前的比较方式

    复杂度(complexity):如果排序10000个元素花费1秒,那么排序100万个元素会花多少时间?在这个例子里,复杂度就是相对其他东西的度量结果.
    算法存储量,包括:
    程序本身所占空间;
    输入数据所占空间;
    辅助变量所占空间;
    一个算法效率越高越好,而存储量是越低越好.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值