今日学习札记——数据结构基础(11.7)
来源:互联网 发布:c4d r16 mac 注册机 编辑:程序博客网 时间:2024/05/18 01:04
1. Data can divided into two classes:
1)numerical data: int, float, complex,...
2)non-numerical data: character, string, graph, voice,...
2. Data_Structure = {D,R}
- D is a data object
- R is a limited set of relationships of all the data members in D
1)Linear structure
3. Data type: Most of the Programming languages provide a group of predefined data type.
1)Atom(原子) data type - int, float, double, ...
2)Structure data type - array, struct, ...
4. Abstruct data type:(ADT)
思想:把一个数据类型的表示和在这个类型上的操作实现封装到一个程序模块中,用户可以直接使用它而不必知道它。
5. 简单选择排序
void selectsort(int a[ ],int n)
{
for (int i = 0; i < n-1; i++)
{
int k = i;
for ( int j = i+1; j < n; j++)
if ( a[j] < a[k]) k = j;
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
6. 对数(所有的算法都是以2为底的)
定义:X^A=B if and only if logxB=A
7.
1)numerical data: int, float, complex,...
2)non-numerical data: character, string, graph, voice,...
2. Data_Structure = {D,R}
- D is a data object
- R is a limited set of relationships of all the data members in D
1)Linear structure
2)Non-linear structure
3. Data type: Most of the Programming languages provide a group of predefined data type.
1)Atom(原子) data type - int, float, double, ...
2)Structure data type - array, struct, ...
4. Abstruct data type:(ADT)
思想:把一个数据类型的表示和在这个类型上的操作实现封装到一个程序模块中,用户可以直接使用它而不必知道它。
5. 简单选择排序
void selectsort(int a[ ],int n)
{
for (int i = 0; i < n-1; i++)
{
int k = i;
for ( int j = i+1; j < n; j++)
if ( a[j] < a[k]) k = j;
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
6. 对数(所有的算法都是以2为底的)
定义:X^A=B if and only if logxB=A
7.
8. 递归
(1)f(1)=1, f(2)=6, f(3)=21, f(4)=58
int f(int x){ if(x==0) //base case return 0; else return 2*f(x-1)+x*x;//recursive call}
(2)factorial(阶乘)function f(n)=n!
long factorial(long n){ if(n<=1) return 1; else return n*factorial(n-1);}
(3)Fibonacci number
long fib(long n){ if(n==0) return 0; else if(n==1) return 1; else return fib(n-1)+fib(n-2);}
(4)求数列和
int Rsum(int a[],int n){ if(n>0) return Rsum(a,n-1)+a[n-1]; return 0;}
(5){a,b,c}:abc, acb, bac, bca, cab, cba 置换n个元素需要n!次
void perm(char[] list, int k, int m){int i;if(k==m){for(i=0;i<=m;i++)cout<<list[i];cout<<endl;}else{for(i=k;i<=m;i++){swap(list[k],list[i]);perm(list, k+1, m);swap(list[k],list[i]);}}}
(6)Hanoi汉诺塔问题
void moveDISKs(int n, char fromTower, char toTower, char auxTower){ if ( n==1) cout<<"move disk "<<n<<"from "<<fromTower<<" to"<<toTower<<endl; else { moveDISKs(n-1, fromTower, auxTower, toTower); cout<<"Move disk "<<n<<"from "<<fromTower<<" to "<<toTower; moveDISKs(n-1, auxTower, toTower, fromTower); }}
0 0
- 今日学习札记——数据结构基础(11.7)
- 今日学习札记——需求工程基础(11.4)
- 今日学习札记——C++指针3(11.4)
- 今日学习札记——C库函数(11.13)
- 今日学习札记——<string>模板类(11.17)
- 今日学习札记——<string>初步(11.17)
- 今日学习札记——STL通用算法(11.20)
- 今日学习札记——C++Primer补充1(11.7)
- 今日学习札记——C++程序设计1(11-02)
- 今日学习札记——C++Primer补充2(11.8)
- XML Schema学习札记(1)——基础总览
- 今日学习札记——STL常用容器:vector、list、set和multiset、map和multimap(11.17)
- 今日学习——基础程序
- 今日学习札记——C语言一些基本语法(11.6)
- 今日学习札记——C语言指针与程序风格(11.6)
- 今日学习札记--C++程序设计2(11.3)
- 大学数据结构(c++版) 王红梅版 学习札记与疑惑——绪论
- Java学习札记(一)——基于数据结构与算法分析
- JAVA存储位置
- Android 网络通信方式
- html向flash传递参数
- MySQL忘记密码怎么办
- [20]枚举
- 今日学习札记——数据结构基础(11.7)
- QqChat.java
- Vuforia Alaph Shader
- Direct3D 中绘制二维图像
- Vim插件管理利器——Vundle
- Xen I/O虚拟化原理——Xen下总线、设备和驱动
- IOS 的 plist方法 好记性不如看博客
- 利用VPN实现android免root防火墙的方法
- android svg