数据结构第一章

证明数据结构分析中的结论的两个常用的方法时归纳法和反证法

归纳法:第一步是证明基准情形,就是确定定理对于某个小的值的正确性,(这一步几乎是很简单的

    第二部,进行归纳假设,一般来说,这意味着假设定理对直到某个有限数k的所有的情况都成立的,然后使用这个假设证明定理对于下一个值也是成立的。

反证法:通过假设定理不成立,然后证明该假设导致某一个已知性质不成立,从而说明原假设是错误的。

反证法和归纳法不同处,归纳发从基础出发,反证法从结论出发。

什么是递归:当一个函数用他自己来定义时就称为是递归。

不是所有的数学递归都能有效的由c的递归模拟来实现。(如果c中的递归没有基准情况,也是毫无意义的)

递归调用将反复进行直到基准情形出现。

编写递归程序的时候,关键是记牢递归四条基本法则:

1 基准情形  (总有某些基准情形,它无需递归就能解出)

2 不断推进  (对于那些需要递归求解的情形,每次递归调用都必须要使求解状况朝接近基准情形方向推进)

3 设计法则  (假设所有的递归调用都能运行)

4 合成效益法则。(在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作)

(有时候不需要递归,如果使用了递归,则记住第四条,合成效益)

数据结构第一章,布布扣,bubuko.com

时间: 2024-11-03 22:25:46

数据结构第一章的相关文章

数据结构 第一章学习小结

数据结构   第一章学习小结 1.数据结构第1章的心得体会: 这周学习了数据结构的绪论及第一章.初步了解了数据结构与算法的相关概念,一开始看书看视频时觉得还挺抽象的,不能够完全理解.但是反复多看了几遍之后,结合例题,自己去操作去跑代码,慢慢觉得容易理解接受起来了.由于现在以网课形式进行教学,老师上课的同时基本还是靠自己去理解学习.当然老师也发挥很大的作用,比如让我们更深入的了解递归的空间复杂度为什么与问题规模有关,又怎样去找到该函数的临界值等等.既锻炼了我们深入思考的能力,也让我们更加清楚了解不

数据结构第一章学习小结

第一章学习了一些基本概念以及它们之间的联系,对数据结构这门课程有了初步的了解.刚开始看书的时候,有很多地方不是很明白,对一些名词的解释也不懂,后来结合视频讲解才比较透彻.一开始不清楚ADT的作用,直到自己去写了一遍才有体会.当自己不懂或者不会的时候,一定要自己上手去写去打代码,才能明白困扰自己的那个点在哪里,通过查资料.看视频等等方式解决这个问题.数据结构和算法是相辅相成的,理解透彻基本的概念,才能为之后的学习铺路.这学期要肯花功夫,本来基础就不是很好,更应该笨鸟先飞.对概念的理解不透彻,或言之

数据结构-第一章 学习小结

一.心得体会: 1. 通过这周初步认识了数据结构,我大概了解了数据结构究竟要学什么,什么是算法(发现算法与我之前了解的算法还是有些出入),了解了数据结构与算法的紧密相关,了解了“程序=数据结构+算法”这道公式. 2.这是第一周网课,教学方式与之前的大有不同.网上上课完全靠大家的自觉.老师的上课方式我觉得挺好的,让大家自行看书结合视频学习再完成测验还有讨论.讨论这一块觉得挺好的,会让我们复习一下视频所学的内容. 3. 总结学习内容 1) 数据结构 数据结构:数据结构包括逻辑结构和存储结构.其中逻辑

数据结构——第一章线性表:03线性表的链式存储结构

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } span.s1 { font: 12.0px Helvetica } span.s2 { color: #fb0207 } 1.单链表:用一组地址任意的存储单元存放线性表中的数据元素.以元素(数据元素的映象)+ 指针(指示后继元素存储位置)= 结点(表示数据元素). 2.以线性表中第一个数据元素a1的存储地址作为线性表的地址,称作线性表的头指针.为了

C语言数据结构——第一章 数据结构的概念

一.数据结构的基本概念 1.1-数据结构是什么? 数据结构是计算机存储和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 想要对大型复杂程序的构造进行系统而科学的研究,必须首先对这些程序中所包含的数据结构进行深入的研究. 数据:通常用于描述客观事物,是对客观事物的符号表示.例如:在我们平时使用的各种文字.数字和特定符号都可以称之为数据.而在计算机中,数据是指所有能

PTA 程序设计题(数据结构第一章)

C语言版 第一题 二分查找 感觉还好 Position BinarySearch(List L, ElementType X) { // 数组大小 // int N = sizeof(L->Data) / sizeof(*L->Data); int start = 1; int end = L->Last; int mid; while (start <= end) { mid = (start + end) / 2; if (L->Data[mid] > X) end

数据结构第一章——线性表的实现

#include<stdio.h> #include<stdlib.h> #include<malloc.h> #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OVERFLOW -2 #define ERROR 0 #define OK 1 using namespace std; //typedef int Status; typedef struct { int *elem; //指向整个线性表

数据结构第一章绪论课后小练

题一: 判断n是否是一个素数,若是则返回逻辑值true,否则返回逻辑值false. package ch01; import java.util.Scanner; public class Part01 { public boolean prime(int a) { boolean flag=true; if(a==1) { flag=false; } for(int i=2;i<a-1;i++) { if(a%i==0) { flag=false; break; } } return flag

[MOOC笔记]第一章 绪论(数据结构)

1.  计算 学习DSA的目的是实现有效的和高效的计算,同时在资源消耗的方面做到足够的低廉. 计算 = 信息处理:借助某些工具,遵照一定规则,以明确而机械的形式进行. 计算模型 = 计算机 = 信息处理工具 算法:在特定的计算模型下,旨在解决特定问题的指令序列. 算法的要素: 输入 待处理的信息(问题) 输出 经处理的信息(答案) 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序列 可行性 每一基本操作都可实现,且在常数时间内完成 有穷性 对于任何输入,经有穷次