栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《数据结构》系列笔记之1.1 什么是数据结构

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《数据结构》系列笔记之1.1 什么是数据结构

✅作者简介:大家好我是五维星空,目前是某国企的一名Java全栈程序员,热爱技术、喜欢代码,希望我的文章能给大家带来收获。

✅个人主页:五维星空的csdn博客

✅系列专栏:数据结构

✅如果觉得博主的文章还不错的话,请三连支持一下博主哦✅

本书笔记部分内容来源于中国大学MOOC:https://www.icourse163.org/course/ZJU-93001?tid=1466830443

1.基本概念 1.1 什么是数据结构

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

例1:

书架上有一万本书,如果我们随便放,则会导致查找耗时久。较好的办法是按照科目或者书名首字母分类存放,以减少查找时间。

解决问题方法的效率, 跟数据的组织方式有关

例2:

写程序实现一个函数PrintN,使得 传入一个正整数为N的参数后,能顺序 打印从1到N的全部正整数

//效率高
void PrintN ( int N )
{ 
    int i;
    for ( i=1; i<=N; i++ ){
    	printf(“%dn”, i );
    }
    return;
} 

//递归效率低,N过大会死机。
void PrintN ( int N )
{
    if ( N ){
        PrintN( N – 1 );
        printf(“%dn”, N );
    }
	return;
} 

解决问题方法的效率, 跟空间的利用效率有关

例3:

写程序计算给定多项式在给定点x处的值

//计算机做加法比乘除法快,乘法其实也是转换为加法做的。
//此算法乘法次数多,效率低
double f( int n, double a[], double x )
{ 
    int i;
    double p = a[0];
    for ( i=1; i<=n; i++ )
    	p += (a[i] * pow(x, i));
    return p;
}

上面的多项式可以转换成如下形式

//乘法次数少,效率高
double f( int n, double a[], double x )
{ 
    int i;
    double p = a[n];
    for ( i=n; i>0; i-- )
    	p = a[i-1] + x*p;
    return p;
}

解决问题方法的效率,跟算法的巧妙程度有关

数据对象在计算机中的组织方式

  • 逻辑结构
  • 物理存储结构

数据对象必定与一系列加在其上的操作相关联。

完成这些操作所用的方法就是算法。

抽象数据类型

  • 数据对象集
  • 数据集合相关联的操作集

抽象:描述数据类型的方法不依赖于具体实现

  • 与存放数据的机器无关
  • 与数据存储的物理结构无关
  • 与实现操作的算法和编程语言均无关

只描述数据对象集和相关操作集“是什么”,并不涉及“如何做到”的问题。

例4:“矩阵”的抽象数据类型定义

下一小节我们来了解一下《什么是算法》,敬请期待~

五维星空 - 分享前后端技术!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号