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# 在PDF文档中创建表格的实现方法

    C# 在PDF文档中创建表格的实现方法

    表格能够一目了然的让用户看到数据信息,使信息显得有条理化,那么在pdf类型的文档中如何来添加表格并对表格进行格式化操作呢?下面小编给大家带来了C# 在PDF文档中创建表格的实现方法,需要的朋友参考下吧
    2017-12-12
  • WinForm调用百度地图接口用法示例

    WinForm调用百度地图接口用法示例

    这篇文章主要介绍了WinForm调用百度地图接口用法,结合具体实例形式简单分析了WinForm WebBrower控件与前端百度接口交互的相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • 关于C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.NET4中的使用介绍方法

    关于C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.

    本篇文章,小编为大家介绍关于C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.NET4中的使用介绍方法,有需要的朋友可以参考一下
    2013-04-04
  • C# 脚本引擎RulesEngine的使用详解

    C# 脚本引擎RulesEngine的使用详解

    这篇文章主要介绍了C# 脚本引擎RulesEngine的使用方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-02-02
  • C#套接字(Socket)通信之UDP组播详解

    C#套接字(Socket)通信之UDP组播详解

    单播 Unicast是指客户端与服务器之间的点到点连接,组播和单播的差别是,必须得有一个“组”的概念,然后才能进行组播,本文就来和大家讲讲UDP组播的实现吧
    2023-05-05
  • C#通过指针实现快速拷贝的方法

    C#通过指针实现快速拷贝的方法

    这篇文章主要介绍了C#通过指针实现快速拷贝的方法,涉及C#指针的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • C#学习笔记整理_变量等基础语法(必看篇)

    C#学习笔记整理_变量等基础语法(必看篇)

    下面小编就为大家带来一篇C#学习笔记整理_变量等基础语法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • VS2019配置OpenCV4.1.0详细教程与测试代码(推荐)

    VS2019配置OpenCV4.1.0详细教程与测试代码(推荐)

    这篇文章主要介绍了VS2019配置OpenCV4.1.0详细教程与测试代码,本文通过截图实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C#实现数字转换汉字的示例详解

    C#实现数字转换汉字的示例详解

    这篇文章主要为大家详细介绍了如何利用C#实现数字转换汉字功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • C#实现绘制随机噪点和直线

    C#实现绘制随机噪点和直线

    这篇文章主要为大家详细介绍了C#如何实现绘制随机噪点和直线,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-01-01

最新评论