`
bbsunchen
  • 浏览: 231569 次
  • 性别: Icon_minigender_1
  • 来自: 天朝帝都
社区版块
存档分类
最新评论

ACM/ICPC获取程序运行时间

阅读更多

最近在参加ACM/ICPC的培训,在做一道深度优先搜索+强剪枝的问题时,想要通过多种剪枝策略来提高运行效率,减少运行时间.
在<time.h>里有函数clock();本身这个函数取得的时间好像是ms,要取得s就
写成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定义的,如果没这个定义
那只能用clock();取得ms;这个函数的执行不会中途停止,如果是在windows系统下,因为它是
多任务系统,它需要在各任务之间切换,如果在测试过程中,执行其他程序,所其得的时间,就会
出现差别,还有windows运行速度相当快,对于小型的测试,所得的时间几乎为0,因此最好将
要测试的过程执行100次或以上,然后再将取得的时间执行次数;输出非常耗时间,没什么必要
的话,就不要输出
这是一个测试选择排序的程序

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

#define M 1000 /* 执行次数 */ 
#define N 500 /* 数组大小 */ 
void SelectSort(int *a,int l,int r) { 
int i,j,v; 
for (i=0;i<r;i++) { 
for (j=i+1;j<=r;j++) { 
if (*(a+i)>*(a+j)) 
v=*(a+i),*(a+i)=*(a+j),*(a+j)=v; 
} 
} 
} 

void main() { 
int a[N],i,j; 
double start,finish; /* 开始时间,结束时间 */ 

start=(double)clock(); /* 我的time.h内没有CLOCKS_PER_SEC */ 
for (j=0;j<M;j++) { /* 执行M次 */ 
for (i=0;i<N;*(a+i++)=rand()%10); /* 每次重新赋值 */ 
SelectSort(a,0,N-1); 
} 
finish=(double)clock(); 
printf("%.4fms",(finish-start)/M); 

getchar(); 
}

 

分享到:
评论

相关推荐

    PowerOJ 是 ACM/ICPC 或 OI 的在线评委

    Online Judge 的存在为 ACM/ICPC(国际大学生程序设计竞赛)和 OI(信息学奥林匹克竞赛)等比赛提供了便利,使得参赛选手可以在线提交代码进行评测,节省了大量的时间和人力成本。同时,Online Judge 也为广大程序员...

    CheckAC:ACMICPC OJ 辅助工具,检查某个题你是否AC,还有Todo功能

    CheckAC是一款专为ACM/ICPC在线判题系统(Online Judge, OJ)设计的Chrome浏览器扩展,它提供了一种便捷的方式,帮助参赛者快速查看自己是否已经解决了特定的编程题目,同时还具备待办事项(Todo)功能,进一步提升...

    Codes of PKU_ACM OnlineJudge Problem

    这个压缩包文件很可能包含了一系列编程题目及其对应的解决方案,用于帮助参赛者准备ACM/ICPC(国际大学生程序设计竞赛)或提升算法与编程能力。ACM/ICPC是全球范围内的一个编程竞赛,旨在展示大学生在算法设计、编程...

    hustoj 最新源码

    HUSTOJ是一个用于ACM/ICPC(国际大学生程序设计竞赛)训练和在线评测的平台,它允许用户提交程序,系统自动运行并返回结果,包括是否正确运行、运行时间及内存消耗。 【描述】提供的命令行步骤是解压并安装HUSTOJ的...

    北大acm在线测试题源码

    这个系统的全称可能是"北大算法竞赛在线评测系统",在acm.pku.edu.cn这个域名下运行,为参赛者提供了一个平台,可以提交代码并实时获取程序运行的结果,包括是否正确通过了测试用例(Accepted状态)。 源码中包含了...

    ACM中常用Java的介绍

    3. **时间和空间上的优势**:在多数比赛中,使用Java编写的程序通常会被给予更多的运行时间和内存空间。虽然Java在执行计算密集型任务时的速度与C/C++相差无几,但在处理输入输出(I/O)操作时速度相对较慢。 4. **...

    基于ACM竞赛模式的C程序设计教学改革研究.pdf

    【ACM竞赛模式】ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ACM/ICPC)是一种全球性的编程比赛,旨在提升大学生的算法设计、问题解决及团队协作能力。这种竞赛模式强调实战...

    ACM程序设计竞赛在线评测系统解决方案.pdf

    - 计算程序运行时间和内存消耗等性能指标,并据此评分。 2. **实现方法**: - 使用C语言编写核心代码,利用Linux操作系统提供的多任务和多线程功能来提高效率。 - 通过调用系统函数等方式访问和管理资源。 - ...

    杭州电子科技大学ACM网试题

    7. **时间复杂度和空间复杂度**:优化代码以达到在规定时间内运行完毕,同时减少内存使用,是ACM竞赛中的关键考量因素。 8. **调试技巧**:快速定位并修复代码错误的能力在比赛中至关重要,学会使用调试工具和技巧...

    OJ.rar

    8. **ACM/ICPC模式**:OJ系统有时会模仿国际大学生程序设计竞赛(ACM/ICPC)的规则,限制每道题目提交次数和时间。 9. **API接口**:一些高级的OJ系统还提供API,允许用户通过编程方式与系统交互,例如自动提交解决...

    Acm竞赛常用算法与数据结构

    8. **时空复杂度分析**:在竞赛中,优化时间和空间复杂度是关键,因为程序需要在有限的时间内运行完毕并占用尽可能少的内存。因此,理解并掌握复杂度分析对于编写高效代码至关重要。 综上所述,ACM竞赛中的常用算法...

    离线OJ判题系统

    ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛...

    杭电acm C语言代码

    【标题】"杭电acm C语言代码"指的是在杭州电子科技大学(Hangzhou Dianzi University,简称“杭电”)举办的ACM/ICPC(国际大学生程序设计竞赛)训练中,使用的C语言编程代码集。这些代码是参赛队伍在解决算法问题时...

    linux操作系统acm资源包

    4. **ACM服务器模拟**:"acm-server"可能是一个本地服务器模拟程序,用于测试和提交代码,它可能包含了评测系统,能够自动检查程序的正确性和运行时间,以模拟在线编程比赛的环境。需要了解如何启动和配置这个服务器...

    ACM 程序设计:程序设计 前言-6.pdf

    ACM程序设计:技术挑战与综合素质的试金石 作为计算机科学领域中的重要赛事,ACM程序设计竞赛以其独特的挑战性和高水平的技术要求,成为了全球范围内大学生展现编程与算法设计能力的竞技舞台。自1977年创办以来,...

    ACM模板byXYM

    在ACM/ICPC竞赛中,为了提高程序的运行效率,通常会采用自定义的输入方法来替代标准输入,如`scanf`或`cin`。文件中给出了一种常用的快速输入方法: ```cpp inline void scan(long long &k) { char c; while ((c =...

    ACM.rar_ACM

    ACM,全称Association for Computing Machinery,是全球最大的计算机科学专业组织,其举办的国际大学生程序设计竞赛(ICPC,International Collegiate Programming Contest)尤其知名,因此这个压缩包可能包含了关于...

    ACM书籍相关的资料-2019-09-11.pdf

    - **ACMICPC程序设计与分析(C++实现)**: 这本书详细讲解了ACM竞赛中的常见问题及C++实现技巧,适合有一定C++基础的学生进一步提高。 #### 三、算法设计与分析 - **算法设计**: 包括但不限于贪心算法、动态规划、...

    zju1001-1099题目总集

    这个系统提供了一个实战环境,让编程爱好者和竞赛选手们可以提交自己的代码,并获取实时的运行结果和评测反馈。这样的即时反馈机制极大地提高了问题解决的效率,使参赛者能在实际竞赛中更加迅速地解决问题。 对于想...

    算法-超级赛亚ACMer(HDU-5246)(包含源程序).rar

    参与该平台的用户可以提交代码并获取自动评测结果,包括是否正确解答(Accepted,简称AC)以及运行时间等信息。 这个PDF文件可能涵盖了以下几个方面: 1. 题目描述:详细阐述了"超级赛亚ACMer"的问题背景、输入...

Global site tag (gtag.js) - Google Analytics