Составить из значений двух массивов третий, также упорядоченный по возрастанию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

7. Заданы два упорядоченных по возрастанию массива. Соста*вить из их значений третий, также упорядоченный по возрастанию 
(слияние).
КТО ЗНАЕТ ТУРБО СИ,ПОМОГИТЕ НУЖНА ПОМОЩЬ,ЕСЛИ ЗНАЕТЕ НАПИШИТЕ ПЛИЗ,ПОПРОЩЕ,ЧТОБЫ Я СМОГ ЕЁ ОБЪЯСНИТЬ,ПОЖАЛУЙСТА!!!

Решение задачи: «Составить из значений двух массивов третий, также упорядоченный по возрастанию»

textual
Листинг программы
int i=0,j=0,k=0;
do
{
if (a[i]<=b[j]) //проверяем, какой из элементов меньше (i, j, k первоначально нули). если элементы равны - условие тоже выполняется, просто при следующем проходе цикла b[j] станет меньше a[i] и они оба запишутся в c[k]
     {
     c[k]=a[i]; //если a[i] меньше, то c[k] принимает значение a[i], затем увеличиваем k и i
     k++;
     i++;
     }
else //в противном случае записываем b[j] в c[k]  и увеличиваем j и k
     {
     c[k]=b[j];
     j++;k++;
while ((k<m)&&(k<n))// выполняется до тех пор, пока k меньше меньшего из n и m. затем один из массивов кончается и дальнейшие значения c[k] просто берутся из оставшегося массива
if (n>m)// если кончился массив b, то значения берутся из а
do
{
c[k]=a[i];
k++;i++;
}
while (k<i+j)
else // иначе значения берутся из b
do
{
c[k]=b[j];
j++;k++;
}
while (k<i+j)

Объяснение кода листинга программы

В данном коде происходит сортировка двух массивов методом сортировки пузырьком. Список действий:

  1. Задаются начальные значения переменных i=0, j=0, k=0.
  2. В цикле do-while происходит сравнение и перестановка элементов массивов a и b, если a[i] меньше или равно b[j]. Если условие выполняется, то значение a[i] записывается в массив c, затем увеличиваются значения i и k. Если условие не выполняется, то значение b[j] записывается в массив c, затем увеличиваются значения j и k.
  3. После окончания цикла do-while, выполняется цикл while, который выполняется до тех пор, пока значение k меньше меньшего из n и m. Если значение n больше m, то значения берутся из массива a. Если значение n меньше или равно m, то значения берутся из массива b.
  4. Если значение n больше m, то в цикле do-while значения a[i] записываются в массив c, пока значение k не станет больше i+j.
  5. Если значение n меньше или равно m, то в цикле do-while значения b[j] записываются в массив c, пока значение k не станет больше i+j.
  6. После окончания цикла while, значения массива c считаются отсортированными по возрастанию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы