算法学习笔记

来源:互联网 发布:淘宝上的好吃零食推荐 编辑:程序博客网 时间:2024/06/03 19:08

文件的输入输出重定向,在main函数的入口处加入以下两条语句即可

freopen("input.*","r",stdin);

freopen("output.*","w",stdout);

 

文件的标准输入输出

FILE *fin,*fout;

fin=fopen("input.*","rb");

fout=fopen("output.*","wb");

while(fscanf(fin,"%d",&x)==1){}

fprintf(fout,"max:%d  min:%d  average:%.3lf\n",max,min,average);

fclose(fin);

fclose(fout);

 

长整数格式:"%I64d"win环境)  "%lld"VS2008Linux.gcc

 

对于未给出起始的大小比较maxmin,我们可以定义一个“正(负也可以)无穷大”的常数INF,使得min=INFmax=-INF

 

(double)clock()/CLOCKS_PER_SEC返回程序执行的秒数

 

<string.h>

memset(a,0,sizeof(a));--将数组a清零

memcpy(b,a,sizeof(a));--a数组复制到b数组

memcpy(b,a,sizeof(类型)*个数);--将部分a数组复制到b数组

 

c语言的gets(s)存在缓冲区溢出漏洞,不推荐使用。

 

算法设计过程中,对于数据之间的逻辑关系(一个数必须要小于另一个数等等),要提高注意力。

 

<assert.h>  使用assert(约束条件)宏来限制非法的函数调用。不成立时,会异常终止程序,并提示错误信息。

 

欧拉公式:V--E+F=2

 

使用标准库的栈和队列时,先包含相关的头文件

#include<stack>

#include<queue>

定义栈如下:

stack<int> stk;

定义队列如下:

queue<int> q;

栈提供了如下的操作

1. s.empty()               如果栈为空返回true,否则返回false  

2. s.size()                返回栈中元素的个数  

3. s.pop()                 删除栈顶元素但不返回其值  

4. s.top()                 返回栈顶的元素,但不删除该元素  

5. s.push()                在栈顶压入新元素  


队列提供了下面的操作

1. q.empty()               如果队列为空返回true,否则返回false  

2. q.size()                返回队列中元素的个数  

3. q.pop()                 删除队列首元素但不返回其值  

4. q.front()               返回队首元素的值,但不删除该元素  

5. q.push()                在队尾压入新元素  

6. q.back()                返回队列尾元素的值,但不删除该元素  

 

三角形有向面积计算点落入区域的问题

 

 

 

0 0