数据结构——1、绪论

理论概念:

			系统架构:
				数据结构主要包括:逻辑结构、存储结构、数据运算;
				逻辑结构:线性、非线性;
					线性:线性表、栈、队列、串、数组;
					非线性:树、图、网;
				存储结构:顺序、链表、索引、散列;
				数据运算:增、删、改、查、排序;
				两类算法:查找算法、排序算法;
					查找算法:顺序、折半、哈希、二叉排序树;
					排序算法:直接插入、堆排序、二路归并排序、快排;

			数据:指一切能够输入到计算机中处理的字符;
			数据元素:也可以叫一条记录、一个节点,是数据结构中最基本的单位,由多个数据项组成;
			数据项:是数据结构不可分割的最小单位;
			数据对象:是由性质相同或者类型相同的一组数据元素的集合,是数据的一个子集;
			数据结构:指相互之间存在一种或多种特定关系的数据元素的集合;用二元组来表示:
			Data_Structure = (D,R)
			数据类型:一个值的集合和在这个值集上定义的一组操作的总称
			抽象数据类型:一个数学模型和定一在该数学模型上的一组操作的总称;
			
			4中基本结构:
				集合:散列的。除了同属于一个集合之外没有其他关系;
				线性结构:数据元素之间是一对一的关系;
				树形结构:数据元素之间是一对多的关系;
				图形结构:数据元素之间是多对多的关系;

			算法:是对特定问题求解步骤的一种描述,是指令的有限序列,
			5个特性:
				输入:0个或多个输入;
				输出:一个活多个输出;
				正确性:每条指令是正确无歧义的,不会产生二义性;
				可行性:算法中的描述可以通过有限次运算执行;
				有穷性:在执行有限步骤之后结束完成。
			目标:
				正确性:程序不含语法错误;对几组输入数据可以得到合乎要求的适当结果;对特殊输入数据可以得到合乎要求的适当结果;对于一切输入数据可以得到合乎要求的适当结果;
				可读性:便于读者的阅读和交流,便于对算法的理解;
				健壮性:对于非法输入数据,可以输出适当的结果,不胡出现莫名其妙的结果;
				高效率和低存储:

时间复杂度:

			时间复杂度和问题的规模有关;
			找到最内层语句的执行次数即可;
				
			快接计算:
				分裂原则:O(longn)
				双循环分裂原则:nO(longn)

		时间复杂度分析例题:
 for (i = 0; i < n; i++) {
    			for (j = 0; j < n - i; j++) {
    				if (a[j] > a[j + 1]) {
    					temp = a[j];
    					a[j] = a[j + 1];
    					a[j + 1] = temp;
    				}
    			}
    		}
    		for (i = 0; i < n; i++) {
    			printf(a[i]);
    		}
    }
     其时间复杂度是O(n*n)
     优化:
int i = n-1;
		do {
			change =false;
			for(j = 0;j < i;j++) {
				if(a[j] > a[j+1]) {
					change = true;
					a[j] <-> a[j+1];
				}
			}
		}while(change = false && i-- >= 1)

练习题:

		1、数据结构在计算机内存中的表示是指:————————;
		2、数据的运算————————
			A、有算术运算和关系运算两大类
			B、是根据存储结构来定义效率
			C、与采用的存储结构有关
			D、必须用编程语言来描述
		3、原地工作的含义是:————————;
		4、判断:在相同的问题规模下,时间复杂度为O(nlongn)的算法总优于时间复杂度为O(n*n)的算法;
		5、判断:任何数据结构都具备三种基本运算:插入、删除、查找;
		6、判断:逻辑结构不同的数据的必须要采用不同的存储结构;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值