【发布时间】:2019-05-14 22:59:06
【问题描述】:
给定两个大小分别为 M 和 N 的排序数组 A 和 B 以及一个元素 k。任务是找到最终排序数组的第 k 个位置的元素。
问题来自 GeeksforGeeks
这是我为上述问题编写的代码。我刚刚将给定的两个数组连接到第三个数组中,然后对其进行排序。我用C语言写过。我缺乏关于如何以优化方式编写代码的知识。请帮助我,让我知道如何优化代码,从而减少执行时间。
for (i = 0; i <= n1 - 1; i++)
{
scanf ("%d", &a[i]);
}
for (i = 0; i <= n2 - 1; i++)
{
scanf ("%d", &b[i]);
}
for (i = 0; i < n1; i++)
{
c[i] = a[i];
}
for (j = n1, i = 0; j <= z - 1 && i <= n2 - 1; j++, i++)
{
c[j] = b[i];
}
for (i = 0; i <= z - 1; i++)
{
for (j = i + 1; j <= z - 1; j++)
{
if (c[i] > c[j])
{
temp = c[j];
c[j] = c[i];
c[i] = temp;
}
}
}
printf ("%d", c[q]);
我得到了输出,但我面临的问题是.. 您的程序花费了比预期更多的时间。超过了时间限制 预期时间限制
【问题讨论】:
标签: arrays sorting optimization