我想测量inserted_sort函数的缩短时间。但是,结果是0.0000000秒。我能做什么?我尝试了其他时间的库。不幸的是,它没有...谢谢。我又打了个电话。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int number=1;
if(number == 1)
{
struct timeval start, end;
gettimeofday(&start, NULL);
for(int i=0; i<5;i++)
{
insertion_sort( kelime, n );
}
gettimeofday(&end, NULL);
printf("Elapsed time is %.10f",(end.tv_sec * 1000000 + end.tv_usec)- (start.tv_sec * 1000000 + start.tv_usec));
}
答案 0 :(得分:2)
using UnityEngine;
using System.Collections;
public class CircleShapeGenerator : MonoBehaviour
{
public int segments = 100;
public float radius = 1;
public Color c1 = new Color( 1, 1, 1, 0.1f );
public Color c2 = new Color( 1, 1, 1, 0.1f );
LineRenderer line;
void Start ()
{
line = gameObject.AddComponent<LineRenderer>();
line.material = new Material(Shader.Find("Particles/Additive"));
line.SetWidth(0.05F, 0.05F);
line.SetVertexCount (segments + 1);
line.useWorldSpace = false;
}
void Update()
{
line.SetColors(c1, c2);
float angle = 20f;
for (int i = 0; i < (segments + 1); i++)
{
float x = Mathf.Sin (Mathf.Deg2Rad * angle) * radius;
float y = Mathf.Cos (Mathf.Deg2Rad * angle) * radius;
line.SetPosition( i, new Vector3( x,y,0) );
angle += (360f / segments);
}
}
}
只有秒粒度。而您的代码最糟糕的可能是微秒或毫秒。请使用time
代替具有微秒粒度的内容。
但请注意,gettimeofday
和time
都会为您提供时间。如果您想要CPU时间gettimeofday
可以使用。
答案 1 :(得分:0)
您的计算和打印是:
//blockquote/font/font/table//tr/td[3]//text()
您正在尝试使用浮点格式打印整数值;这不会带来幸福。假设整数运算不会溢出,那么您可以使用:
printf("Elapsed time is %.10f",
(end.tv_sec * 1000000 + end.tv_usec) -
(start.tv_sec * 1000000 + start.tv_usec));
将为您提供浮点值以使用浮点格式进行打印。当 printf("Elapsed time is %.6f",
((end.tv_sec * 1000000 + end.tv_usec) -
(start.tv_sec * 1000000 + start.tv_usec)) / 1000000.0);
仅支持6(并且默认为6位小数,但显式性通常很好)时,请求10个小数位是没有意义的。
你也可以使用:
gettimeofday()
关键是要确保在浮点运算中完成足够的计算。