一些常用的小算法和知识点 [以前的积累]
2006-05-22 21:53
351 查看
0.随机数的产生
#include<stdlib.h>
#include<time.h>
time_t t;
srand((unsigned)time(&t));
int num=rand()%10;
1.求最大公约数
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd( b,a%b);
}
int gcd2(int m,int n)
{
while(1)
{
m=m%n;
if(m==0)
return n;
n=n%m;
if(n==0)
return m;
}
}
int max_comdivisor(int i,int j) //非递归减法实现
{
while(i!=j)
{
if(i>j) i-=j;
if(i<j) j-=i;
}
return i;
}
2.动态创建2维数组a[m]
int **a; //a[m]
a=new int *[m];
for(int i=0;i<m;i++)
a[i]=new int
;
for(int k=0;k<m;k++)
delete []a[k];
delete []a;
3.bubble sort
void bsort1(int *a,int n)
{
int i,j;
for( i=n;i>1;i--)
for(j=0;j<i-1;j++)
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
}
void bsort2(int *a,int n)
{
int i,j;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
}
4.qsort 写法
int cmp(const void *e1, const void *e2)
{
int *a,*b;
a=(int *)e1;
b=(int *)e2;
if (*a==*b) return 0;
if (*a>*b) return 1;
else return -1;
}
qsort(a,N,sizeof(int),cmp);
/*void qsort( void *base, size_t num, size_t width,
int (__cdecl *compare )(const void *elem1, const void *elem2 ) ); */
5.测试程序耗时
clock_t start = clock();
……
clock_t finsh = clock();
cout << "cost time:" << double(finsh - start) /CLOCKS_PER_SEC << endl;
6.[new的写法]
char total[512];
char* pd1 = new (total) char[2]; //在total地址处开始申请空间
#include<stdlib.h>
#include<time.h>
time_t t;
srand((unsigned)time(&t));
int num=rand()%10;
1.求最大公约数
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd( b,a%b);
}
int gcd2(int m,int n)
{
while(1)
{
m=m%n;
if(m==0)
return n;
n=n%m;
if(n==0)
return m;
}
}
int max_comdivisor(int i,int j) //非递归减法实现
{
while(i!=j)
{
if(i>j) i-=j;
if(i<j) j-=i;
}
return i;
}
2.动态创建2维数组a[m]
int **a; //a[m]
a=new int *[m];
for(int i=0;i<m;i++)
a[i]=new int
;
for(int k=0;k<m;k++)
delete []a[k];
delete []a;
3.bubble sort
void bsort1(int *a,int n)
{
int i,j;
for( i=n;i>1;i--)
for(j=0;j<i-1;j++)
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
}
void bsort2(int *a,int n)
{
int i,j;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
}
4.qsort 写法
int cmp(const void *e1, const void *e2)
{
int *a,*b;
a=(int *)e1;
b=(int *)e2;
if (*a==*b) return 0;
if (*a>*b) return 1;
else return -1;
}
qsort(a,N,sizeof(int),cmp);
/*void qsort( void *base, size_t num, size_t width,
int (__cdecl *compare )(const void *elem1, const void *elem2 ) ); */
5.测试程序耗时
clock_t start = clock();
……
clock_t finsh = clock();
cout << "cost time:" << double(finsh - start) /CLOCKS_PER_SEC << endl;
6.[new的写法]
char total[512];
char* pd1 = new (total) char[2]; //在total地址处开始申请空间
相关文章推荐
- 常用一些Java基础算法积累
- vb的一些常用算法代码
- 【C#】 一些不常用,很容易混淆的知识点
- matplotlib一些常用知识点的整理
- 机器学习的一些常用算法
- 项目中的一些常用的知识点总结
- 黑马程序员 常用的一些小算法
- yii2.0一些重要但不常用知识点
- 一些非常容易混淆的零碎知识点积累
- CSS的一些常用知识点
- 一些常用的知识点
- 数据结构中一些常用的算法
- java中一些常用知识点的区别
- JS中的一些不常用的知识点。
- UIButton的一些常用知识点
- 矩阵一些常用的知识点 备忘
- Swift开发UITableView常用的一些细节知识点介绍
- 蓝桥杯常用算法知识点:【递归】n个球中取m个,有多少种取法?
- Linux下vim的一些常用知识点(待扩充)
- 一些散乱的算法竞赛入门经典的知识点(一)