【数据结构笔记-1.1】关于数据组织-例_图书摆放

1.1 什么是数据结构?

答:没统一的标准答案.
核心:数据结构和算法是两个经常挨在一起的东西,距离举例子感受数据结构。在这里插入图片描述

1.2 如何在书架上摆放图书?

  1. 书架是什么样子的?
    在这里插入图片描述
    引申:数据怎么组织跟数据规模有关,难度也不一样。
  2. 方法:
    (1)随便放:插入容易,查找麻烦。
    (2)按书名拼音字母顺序排放(二分查找->查字典):插入麻烦,查找容易。
    (3)分类:把书架划分为几个区域,每个区域指定摆放某种类别的图书,在每种类别内,按照书名的拼音字母顺序排放。
    -------->操作1-插入:先定类别,二分查找确定位置,移出空位;
    -------->操作2-查找:先定类别,二分查找;
  3. 结论:
    在这里插入图片描述

1.2 写程序实现一个函数PrintN,是的传入一个正整数N,能顺序打印从1到N的全部正整数.

1.循环实现:

void PrintN (int N)
{
	int i;
	for (i=1 ; i<=N;i++)
	{
		printf("%d\n",i);
	}
	return;
}

2.递归实现

void PrintN(int N)
{
	if(N)
	{
		Print(N-1);
		printf("%d\n",N);
	}
	return;
}

结论:
尽管递归代码清晰易理解,但是计算机不愿意跑,因为递归对空间的占用很恐怖。

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

在这里插入图片描述

  1. 效率很低
double f(int n, double a[], double x){
	int il
	double p = a[0];
	for (i = 1;i<=n;i++)
		p += (a[i]*pow(x,i));
	return p;
}
  1. 秦九韶算法
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;
}

备注:clock
在这里插入图片描述
结论:法2比法1,在10^7次之后,能有一个数量级的差距
在这里插入图片描述

1.4 到底什么是数据结构?

在这里插入图片描述

1.5 抽象数据类型

· 数据类型:
1)数据对象集(属性)
2)数据集合相关联的操作集(方法)
····· C语言里是独立处理的
····· C++等高级语言中是集成的封装在一个类中(属性和方法)
·抽象:
描述数据类型的方法不依赖于具体的实现
1)与存放数据机器无关
2)与数据存储的物理结构无关
3)与实现操作的算法和编程语言无关
只描述数据对象集和相关操作集”是什么“,并不涉及”如何做到“

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

在这里插入图片描述
上面的矩阵存储结构类型,以及下面的ElementType都是表示抽象数据类型,就是不指定具体的int,char等数据类型.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值