【发布时间】:2021-12-31 18:05:34
【问题描述】:
基本上我需要将数组排序的执行时间与很多元素(或多或少500k个元素)进行比较,所以我想知道是否有办法让数组拿出自己的元素 https://onlinegdb.com/Hp6MkbCeM
int main()
{
int i,n;
printf("Enter size of array:\n");
scanf("%d",&n);
//Initialize array
int arr[n];
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
printf("The current array is:\n");
double time_spent = 0.0;//starting clock
clock_t begin = clock();
int temp = 0;
//Calculate length of array arr
int length = sizeof(arr)/sizeof(arr[0]);
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
//Sort the array in ascending order
for (i = 0; i < length; i++)
{
for (int j = i+1; j < length; j++)
{
if(arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("\n");
//Displaying elements of array after sorting
printf("Elements of array sorted in ascending order: \n");
for (int i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
clock_t end = clock();
time_spent += (double)(end - begin) / CLOCKS_PER_SEC;
printf("\nThe elapsed time is %f seconds", time_spent);
return 0;
}
【问题讨论】:
-
不行,你需要编写一个循环调用
rand()来分配每个元素。 -
... 或从文件中读取它们,或从诸如
/dev/random之类的设备中读取它们。如果您希望每次试验都使用相同的“随机”数字序列,那么rand()使用预先选择的种子或从预先生成的数字文件中读取是可行的方法。 -
如果你想测试随机兽人名字,I have just the thing;
orcish(string, sizeof string).
标签: c