Реалізуйте алгоритм злиття масивів MergeArrays(int[] array1, int[] array2), який об’єднає два посортовані вхідні масиви в один, аналогічно, посортований, за допомогою одного обходу вхідних масивів.
В завдані можна використовувати тільки стандартні можливості мови, такі як масиви, цикли, умови.
Основна мета завдання - власний алгоритм розв'язку, тому забороняється використовувати всі можливості .Net такі як Linq і т.д.
int[] array1 = new[] { 1, 3, 5, 7 }; int[] array2 = new[] { 1, 2, 3, 5, 6, 8 }; int[] result = MergeArrays(array1, array2); result = {1, 1, 2, 3, 3, 5, 5, 6, 7, 8}
декілька додаткових наборів вхідних даних:
int[] array1 = new[] { 1, 5 }; int[] array2 = new[] { 1, 5 }; int[] array1 = new[] { 1, 5, 6, 7, 8, 9, 10, 12, 13 }; int[] array2 = new[] { 1, 5, 6, 7, 8, 9, 11, 12, 13 }; int[] array1 = new[] { 1, 7, 8, 9, 10, 12, 13 }; int[] array2 = new[] { 1, 5, 6 };
#2
Реалізувати алгоритм визначення змін стану масива. На вхід методу подається 2 стрічкових масиви. 1 - основний, 2 - це змінений перший масив (деякі елементи в ньому додались, деякі видалились, інші залишились без змін). Метод повинен розпізнати і повернути 3 масиви як out параметри:
- масив доданих елементів
- масив видалених елементів
- масив не змінених елементів.
string[] arr1 = new[] {"one", "two", "three"}; string[] arr2 = new[] {"one", "three", "cat", "dog" }; string[] addedElements; string[] removedElements; string[] notChangedElements; AnalyzeChanges( arr1, arr2, out addedElements, out removedElements, out notChangedElements); addedElements = {"cat", "dog"} removedElements = {"two"} notChangedElements = {"one", "three"}
Готові роботи відсилайте на: eleksdev.courses@gmail.com
чи можна використовувати властивості типу array1.Length?
ВідповістиВидалитиТак
Видалитив 2му завданні у вхідних масивах можуть бути однакові значення? Чи приймати за дефолт, що всі елементи різні?
ВідповістиВидалитиможуть бути однакові, значення першого масиву треба брати за основу.
Видалития мав на увазі "однакові в 1 з масивів", тобто, напр. string[] arr1 = new[] {"one", "two", "three", "one"};
Видалити{"one", "two", "three", "one"}; такого не може бути.
ВидалитиТам в другому є ще один "прикол". По логіці тих стрінгів, що дані в прикладі, нові елементи завжди додаються у кінець списку.
ВідповістиВидалитиЦе просто співпадіння.
ВидалитиТобто нові елементи можуть додаватись в будь-якому місці списку? Елементи унікальні чи можуть повторюватись багато разів?
ВідповістиВидалитиТак, нові елементи можуть додаватись в будь-якому місці списку + Елементи унікальні
ВідповістиВидалитиМаємо умову:
ВідповістиВидалитиif (firstCondition || secondCondition)
{...}
Якщо firstCondition повертає true, то secondCondition не перевіряється?
ага, умова після "||" перевіряється тільки за необхідності.
ВидалитиДякую.
Видалити