Даны два отсортированных массива A и B размера M и N соответственно и элемент k.Задача состоит в том, чтобы найти элемент, который будет в k-й позиции окончательного отсортированного массива.
Вопрос от GeeksforGeeks
Это код, который я написал для вышеуказанного вопроса.Я только что объединил данные два массива в третий массив, а затем отсортировал его.Я написал на языке Си.Мне не хватает знаний о том, как написать код оптимизированным способом.Пожалуйста, помогите мне, дайте мне знать, как оптимизировать код так, чтобы он занимал меньше времени выполнения.
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]);
У меня есть вывод, но проблема, с которой я сталкиваюсь, состоит в том, что .. Ваша программа взяла большепревышено ожидаемое время. Превышен лимит времени Ожидаемый лимит времени <0,324сек