竞赛中的一些常用函数

主要说一些课堂上没有讲但ACM竞赛中常用的一些函数

1、memset():在<string.h>中,函数声明为

1 void  *memset(
2    void *dest,      //数组头指针
3    int c,               //将数组变为的字符
4    size_t  count    //数组长度
5 );//函数返回修改数组的指针

比如:

 1 #include<stdio.h>
 2 #include <string.h>
 3 int mian()
 4 {
 5 char data[]="This is a test of the memset function";
 6 printf("Before:%s\n",data);
 7 memset(data,'*',4);
 8 printf("After:%s\n",data);
 9 }
10 
11 /*
12 output
13 Before: This is a test of the memset function
14 After:  **** is a test of the memset function
15 
16 */

 2、sort():在C++中由<algorithm>声明,时间复杂度是n*log(n),默认升序。比如sort(a,a+10)表示将以数组a的前10个元素升序排列。这是简单的表示 。 完整表示为sort(a,a+10,less<int>());于此对应的降序表示为sort(a,a+10,greater<int>())。  sort()只能对简单元素的数组进行排序,若要对结构体按照某一种元素进行排序,则要用到qsort(数组名,元素个数,元素大小(sizeof),比较函数名),头文件为<iostream>.比较函数写法如下:

int compare(const void *a,const void *b)
{
    return *(int *)b-*(int *)a;
}//降序,可按结构体某一元素降序排列

int compare (const void *a,const void *b)
{
    return *(int *)a-*(int *)b;
} //shengxu

3、时间函数clock(),在头文件<time.h>中声明,该函数在程序运行完成后对程序的时间复杂度进行度量,因硬件的不同而不同,即使在同一台机器上也会有所差异。函数头为clock_t  clock(void)返回硬件滴答数,一般为毫秒(long 类型),除以CLK_TCK CLOCKS_PER_SEC换算成秒(即1000)

 1 #include <stdio.h>
 2 #include <time.h>
 3 int main()
 4 {
 5     long start,end;
 6     start=clock();
 7     for(int i=0;i<10;i++)
 8       for(int j=0;j<1000;j++)
 9         printf("%d         %d\n",i,j);
10     end=clock();
11     printf("end-start=%ld\n",end-start);
12     printf("end-start=%ld\n",(end-start)/1000);
13     return 0;
14 }

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/caoyuanlang/archive/2013/01/12/2857016.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在算法竞赛,C语言有许多重要的函数常用来辅助解决问题和实现算法。 首先,C语言的数学函数是算法竞赛的必备工具之一。这些函数包括sqrt()用于求平方根、pow()用于求幂次方、fabs()用于求绝对值等等。通过这些函数,我们可以方便地进行数值计算和数学运算,充分利用C语言的计算能力。 其次,字符串处理函数也是非常重要的。在算法竞赛,我们经常需要对字符串进行操作,包括字符串的复制、拼接、比较等等。C语言的strcmp()函数用于比较字符串的大小,strcpy()函数用于复制字符串,strcat()函数用于拼接字符串等。这些函数可以帮助我们高效地处理字符串,提高算法的效率。 此外,数组处理函数也是不可或缺的。在算法竞赛,我们经常需要使用数组进行数据存储和处理。C语言提供了一系列的数组操作函数,如memcpy()用于数组的拷贝,memset()用于数组的初始化等等。这些函数帮助我们更方便地操作数组,提高算法的实现效率。 最后,文件操作函数也是非常重要的一部分。算法竞赛的题目通常需要从文件读入数据或将结果写入文件。C语言函数,如fopen()用于打开文件,fscanf()用于从文件读取数据,fprintf()用于向文件写入数据等,都是算法竞赛不可或缺的工具。 综上所述,C语言函数在算法竞赛起到了非常重要的作用。数学函数、字符串处理函数、数组处理函数和文件操作函数等都是我们经常使用的工具,能够帮助我们更高效地解决问题和实现算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值