C#常用数据结构和算法总结

 更新时间:2016年06月28日 14:59:12   作者:贺臣  
这篇文章主要介绍了C#常用数据结构和算法,这里我们总结了一些知识点,可以帮助大家理解这些概念。

1.数据

  数据(Data)是外部世界信息的载体, 是能够被计算机识别,加工,存储的。在现实生活中也就是我们的产品原材料。

  计算机中的数据包括数值数据,图片,影音资料等.

2. 数据元素和数据项

  数据元素(Data Element)是数据的基本单位,在计算机处理的过程中通常是作为一个整体来作为处理的。

  数据项(Data Item):一个数据元素通常由一个或多个数据项组成。

  比如数据库表:(Student),它有Id,Name,Sex,Age,Address等字段,而这张表又有多行数据。我们通常将这些字段就叫做数据项,每行数据

  就叫做数据元素。在某些情况下数据元素又称为元素,节点,纪录等。

  数据项分为两种:(1)初等项;(2)组合项[也就是可以分为更小的项,比如人可以再分为欧洲人,亚洲人,非洲人]

3.数据结构

  数据结构(Data Structure) 是在相互之间存在的一种或多种特定关系的数据元素集合.

  众所周知,在计算机中任何数据元素都不可能是单一或孤立存在的,它们之间都存在着一定的关系。就和人类体系结构一样,人不可能是孤立而与外界没有关系的。

  数据结构分为四种:

  (1)集合[Set]

  (2)线性结构[Linear Structure] (常见的线性结构数据,数据库存储数据)

  (3)树形结构[Tree Structure]    (树状结构,就好像人类的继承关系,在计算机中xml文件存储数据最为典型)

  (4)图形结构[Graphic Structure] (图形结构也是相对比较复杂的,因为存在多对多的关系,计算机网络拓扑)

//img.jbzj.com/file_images/article/201606/201606281457219.png

4.数据对象

  数据对象(Data Object),性质相同的数据元素的集合,是数据(Data) 的一个子集。{“aa”,"bb","cc","dd"} 我们就可以将其看做是一个数据对象,都是字符长度的集合。

5.数据类型

  数据类型(Data Type) ,从上面的数据对象我们可以引申出数据类型这个概念,很多时间数据类型在C#,Java 等高级程序语言中说的比较多

  数据类型分为两种:

    (1) 非结构的原子类型 (在C#也就是基本数据类型,如int,string,long 等)

    (2)结构类型,可以由多个结构类型组成,并可以分解。而结构类型可以包含结构类型和非结构的原子类型

6.算法

  算法: 一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

  一个算法的优劣可以使用空间复杂度和时间复杂度来衡量。其中算法有五个特征:

  (1)有穷性: 算法中每条指令的执行次数有限,执行每条指令的时间有限

  (2)确切性: 算法的每一步骤必须有确切的定义

  (3)输入:    一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件

  (4)输出:   一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的

  (5)可行性:算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成

  算法分类: 基本算法,数据结构算法,数论与代数算法,计算几何算法,图论算法,动态规则与数据分析,加密算法,排序算法,检索算法,随机化算法,并行算法

7. 复杂度

  算法的复杂度可以使用 时间复杂度 和 空间复杂度 来衡量。

  时间复杂度:算法的时间复杂度是指算法需要消耗的时间资源

  空间复杂度: 算法的空间复杂度是指算法需要消耗的空间资源

8.数据的物理结构

  数据的物理结构(Physical Structure) 又称为 存储结构,是数据在计算机中的表示和存储,包括数据元素的表示和存储以及数据元素关系的表示和存储。

  数据结构存储分为:(1)顺序存储结构.(2)链式存储结构

  顺序存储结构:通过数据元素在计算机存储器上的相对位置来表示数据元素的逻辑关系,一般把逻辑相邻的数据元素存储在物理位置相邻的存储单元中。

  C# 中的数组结构就是典型的顺序存储结构方式。

  链式存储结构:相邻元素不需要在物理存储位置单元相邻,它们而是通过存储相邻数据元素的地址来维护关系。地址我们通常称之为为引用(Reference)

备注:此篇文章只是总结了数据结构方面的一些概念,我们在学习编程的时候经常说数据,复杂度等等这些概念,至于这数据,复杂度等等到底是什么东西我们也没有去研究过,这里总结了一些知识点可以帮助大家理解这些概念。

以上这篇C#常用数据结构和算法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解析C#拼接Json串的几种方法

    解析C#拼接Json串的几种方法

    本文主要介绍了C#拼接Json串的几种方法,主要包括了4种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 解决winform界面刷新闪烁问题的多种方案

    解决winform界面刷新闪烁问题的多种方案

    这篇文章给大家介绍了如何解决winform界面刷新闪烁问题的多种方案,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • C#求解哈夫曼树,实例代码

    C#求解哈夫曼树,实例代码

    C#求解哈夫曼树,实例代码,需要的朋友可以参考一下
    2013-04-04
  • Unity的IPostprocessBuildWithReport实用案例深入解析

    Unity的IPostprocessBuildWithReport实用案例深入解析

    这篇文章主要为大家介绍了Unity的IPostprocessBuildWithReport实用案例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 史上最简洁C# 生成条形码图片思路及示例分享

    史上最简洁C# 生成条形码图片思路及示例分享

    这篇文章主要介绍了史上最简洁C# 生成条形码图片思路及示例分享,需要的朋友可以参考下
    2015-01-01
  • C#异步调用实例小结

    C#异步调用实例小结

    这篇文章主要介绍了C#异步调用的方法,实例分析了C#同步调用及异步调用的常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#发送数据到剪贴板及从剪贴板中取数据的方法

    C#发送数据到剪贴板及从剪贴板中取数据的方法

    这篇文章主要介绍了C#发送数据到剪贴板及从剪贴板中取数据的方法,涉及C#针对剪贴板数据的读写操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 详解C# 托管资源和非托管资源

    详解C# 托管资源和非托管资源

    这篇文章主要介绍了详解C# 托管资源和非托管资源的相关资料,需要的朋友可以参考下
    2016-01-01
  • Unity实现车型识别的示例代码

    Unity实现车型识别的示例代码

    这篇文章主要介绍了在Unity中接入百度AI,实现检测一张车辆图片的具体车型。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片的车辆品牌及型号。需要的可以参考一下
    2022-01-01
  • vs代码段快捷键设置(图文)

    vs代码段快捷键设置(图文)

    学习代码快捷键是程序员必学知识点,会使用代码快捷在程序开发过程中会提高开发效率,下面小编给大家整理些有关vs代码段快捷键设置的技巧,需要的朋友可以参考下
    2015-08-08

最新评论