8085 Ассемблер Языковая программа для создания массива в порядке возрастания из 2 других массивов

У меня есть два массива в порядке возрастания, которые мне нужно объединить, чтобы создать новый массив, также в порядке возрастания. Один из способов сделать это - поместить один из массивов в новый, а затем пройти через второй массив и сравнить все значения в нем с значениями в новом массиве и поместить его в нужное место. Это кажется неэффективным, хотя.

Я также думал о том, чтобы сравнить первые значения массива, а затем сравнить то, которое не вставлено, со следующим значением другого массива.

Что вы думаете о моих идеях? Есть ли более простой способ сделать это?

1 ответ

Я думаю, что самый простой способ сделать это - иметь один индекс для каждого из массивов:

while(index_result < array_result_length)
    if (index1 < array1_length)
        if (index2 < array2_length)
            if (array1[index1] < array2[index2])
                array_result[index_result] = array1[index1]
                index1++
            else
                array_result[index_result] = array2[index2]
                index2++
        else
            array_result[index_result] = array1[index1]
            index1++
    else
         array_result[index_result] = array2[index2]
         index2++         
    index_result++
Другие вопросы по тегам