循环与递归笔记

1.循环与递归:

n  设计算法重复处理大量数据的思路:以不变应万变;

n  (斜输出)关键问题:第i斜行、j列的数据对应于第几行第几列的元素?a[i-1+j][j]

n  当输出时还是按a[i][j]输出  因为里面已经赋好值了。每输出一行换行。

n  递归的关键在于找出递归方程式和递归终止条件。

n  MOD 是相除取余数,DIV是相除取商整数

欧几里得算法递归算法:

递归代码:

gcd(m,n)

  {   if n=0 return(m)//出口

      else return (GCD(n,m mod n))//不停的调用自身

  }

2.定义:

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

堆栈是一种执行“后进先出”算法的数据结构。

设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。所以“先进后出”就是这种结构的特点。

堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。

堆栈是计算机中最常用的一种数据结构,比如函数的调用在计算机中是用堆栈实现的。
堆栈可以用数组存储,也可以用以后会介绍的链表存储。

数学建模就是把现实世界中的实际问题加以提炼,抽象为数学模型,求出模型的解,验证模型的合理性,并用该数学模型所提供的解答来解释现实问题,我们把数学知识的这一应用过程称为数学建模。

递推与递归的区别:递推像是多米诺骨牌,根据前面几个得到后面的;递归是大事化小,比如汉诺塔(Hanoi)问题,典型的递归。

地位于高位:如果int类型的值不是二进制形式的,先转化为二进制,左边的是高位,右边的是低位

3.关于字符、字符串的输入函数:

  • cin

– 接收键盘输入,将空格、回车符作为分隔符使用

– #include <iostream> using namespace std;

  • cin.getline(数组名,字符个数,[结束符])

– 接收键盘输入,回车符作为分隔符使用

– #include <iostream> using namespace std;

– 跳过结束符,从结束符之后的数据继续进行读操作

  • char getchar()

– 接收任何的键盘输入,包括空格,回车符

– #include <iostream> using namespace std;

  • char[ ] gets(char [ ])

– 接收一个字符串,可以接收空格,(知道读到结束符)

– #include <iostream> using namespace std;

– 不跳过结束符

posted @ 2013-08-07 09:52  amsfe  阅读(238)  评论(0编辑  收藏  举报