一、数据结构概念
1.基本概念
数据,数据元素,数据项,数据对象,数据结构,数据类型,抽象数据类型
2.逻辑结构
逻辑结构 ,逻辑结构分类,逻辑结构特点
3.存储结构
存储结构,存储结构分类
二、算法设计与分析
1基本概念:
算法,算法特性,算法评价标准,算法描述语言,算法设计步骤
2.基本算法:
穷举法,递推法,迭代法,递归法
3.算法分析:
事后测量,事前估计,问题规模,执行频度,时间复杂度,空间复杂度
———————————————————————————————————————————————————————— 1.数据结构是指数据元素之间的逻辑关系,即数据的逻辑结构。可看作是从具体问题抽象出来的数据模型,与数据的存储无关。
2.数据的逻辑结构分为:线性结构,树形结构,图结构,集合结构
3.数据的存储结构分为:顺序存储,链接存储,索引存储,散列存储
4.数据的逻辑结构能否独立于存储结构来考虑?反之数据的存储结构是否可以独立于逻辑结构来考虑?
答:逻辑结构可独立于存储结构。数据设计的两个阶段,逻辑结构在系统分析时进行,存储结构在系统设计时进行
数据的存储结构是不可独立于逻辑结构,它是逻辑结构在存储中的映像。
5.设有10个取值范围为0-9的互不相等的整数存放在数组A[10]中,编程实现将他们从小到大排序并存入另一个数组
#include<stdio.h>
int main(void){
int A[10]={3,4,5,1,2,6,7,8,9,0};
int B[10],i;
for(i=0;i<10;i++) B[A[i]]=A[i];
for(i=0;i<10;i++) printf("%d ",B[i]);
printf("\n");
}
6.算法应有输入,则0个输入是什么意思?是否意味着没有输入?
答:0个输入指的是算法的输入不是通过键盘或其他输入设备输入的,而实通过算法内的定值语句或复制与给出所需变量的初值,它也被视为一种特殊的输入。只不过不是显式输入。
7.下面两个算法是否符合算法的特性?
void exam(){
n=2;
while(n%2==0) n=n+2;
printf("%d\n",n);
}
死循环,违反算法有穷性
void test(){
y=0;
x=5/y;
printf("%d,%d",x,y);
}
除零错误,违反算法的正确性特性