2025-11-02 15:52:19
发布于:广东
一个语法+排序:
结构体:单独一个变量,一个数组不能代表多个信息
int a;只能存一个数字
int a[100];存数字,一个下标表示第几个
int a[10][10];
存行列数字,用两个下标表示两个信息 
两个下标可以构造成一个新信息,一个二维数组最多可以代表5个信息 
结构体:能够配合结构体数组 存储多种信息
struct node{
	int id;
	string name;
	double sum,chi,math,eng;
}a[1000]; 
1000*6个信息 
bool cmp(node x,node y){
	if(){
		return x.xxx > y.xxx; 
	}else if(){
		return 
	}
} 
结构体排序的题目:
有很明显特征(按照a从大到小比较,如果a相同则按照b从大到小比较) 
for(;;)cin >> ;
sort(a+1,a+n+1,cmp);
for(;;)cout <<;
结构体题目做法:
观察题目定义结构体内部成员
观察题目的输入方式,构造其他答案
进行排序
什么是算法(解决问题的逻辑,解决问题的方案):
1、需要接收已知信息:输入项 
2、需要把结果传出去:输出项 
3、需要在一定时间内解决:有穷性 
4、要把每一步都能确定出来作用:确切性 
5、可以在某个载体上执行的:可行性
好的算法:更快(执行时间短)更少(内存用的少) 
O(1) O(logN) O(N) O(N*logN) O(N方)  O(N!) 
 
三个算法(模拟、枚举、递归): 
模拟算法(让做什么,我们就做什么):
从1-n中输出偶数 for(int i=1;i<=n;i++) if(i%2==0) cout << i<<" ";
但有时候题目不会直接告诉你,直接推算出模拟成,坐标表示,变量表示 
求1-n中,每1-1,1-2,1-3,1-4,1-5,1-n累计和 
注意点:一定要严谨的写清楚每个变量名的作用和每一次循环
1,0,n-1,n
什么是模拟题:没有数学公式可以解决,没有什么枚举等等方法,
只能根据题目说什么,我们就做什么。
模拟题看样例去推处理过程
枚举算法:在不确定答案的时候,我们可以去举例子,一个一个算(循环)
枚举三要素:枚举范围、枚举目标、正确条件
枚举就是全循环。 
递归算法(1、将循环的数学公式简化成函数,2、将一个大问题分解成相同的小问题) 
递归:1、找边界  2、找递归公式(怎么递过去,怎么归回来) 
 
 
这里空空如也








有帮助,赞一个