“Объединение двух отсортированных массивов” Ответ

Объединение двух отсортированных массивов

import java.util.Arrays;

public class MergingTwoArrays {
	/*
	 * This code merges two arrays, sorted in ascending
	 * order, into a single aggregate array sorted in
	 * ascending order.
	 * 
	 * Let n be size of first array and
	 * m the size of the second array.
	 * 
	 * Time complexity: O(n+m)
	 * Space complexity: O(n+m)
	 */
	public static void main(String[] args) {
		int[] nums1 = { 1, 5, 7 };
		int[] nums2 = { 3, 6 };
		// Below prints: [1, 3, 5, 6, 7]
		System.out.println(Arrays.toString(merge(nums1, nums2)));
	}

	// Method merging the two sorted arrays
	private static int[] merge(int[] nums1, int[] nums2) {
		int n = nums1.length, m = nums2.length;
		int[] sortedArray = new int[n + m];
		// Indexes into nums1, nums2, and sortedArray
		int nums1Ptr = 0, nums2Ptr = 0, sortedArrayIdx = 0;
		// Collect the elements of nums1 and nums2 in order
		while (nums1Ptr < n && nums2Ptr < m) {
			// Transfer smaller element to sortedArray
			if (nums1[nums1Ptr] < nums2[nums2Ptr]) {
				sortedArray[sortedArrayIdx++] = nums1[nums1Ptr++];
			} else {
				sortedArray[sortedArrayIdx++] = nums2[nums2Ptr++];
			}
		}
		// Transfer elements remaining in either nums1 or nums2
		// to the resulting sortedArray
		while (nums1Ptr < n) {
			sortedArray[sortedArrayIdx++] = nums1[nums1Ptr++];
		}
		while (nums2Ptr < m) {
			sortedArray[sortedArrayIdx++] = nums2[nums2Ptr++];
		}

		return sortedArray;
	}
}
Wissam

Два отсортированных массива слияют

public static int[] merge(int[] a, int[] b) {

    int[] answer = new int[a.length + b.length];
    int i = 0, j = 0, k = 0;
    while (i < a.length && j < b.length)
    {
        if (a[i] < b[j])
        {
            answer[k] = a[i];
            i++;
        }
        else
        {
            answer[k] = b[j];
            j++;
        }
        k++;
    }

    while (i < a.length)
    {
        answer[k] = a[i];
        i++;
        k++;
    }

    while (j < b.length)
    {
        answer[k] = b[j];
        j++;
        k++;
    }

    return answer;
}
Brainy Beetle

Как объединить два отсортированных массива

// Merge sorted arrays using javascript

let arrrone = [0,3,4,31];
let arrayTwo = [4,6,30,31,33];
let j = 0;
let k = 0;
let mergedArray = [];

let length = arrrone.length + arrayTwo.length;

console.log(length)

for(let i = 0; i<= length - 1; i++){
  if(arrrone[j] < arrayTwo[k]){
    mergedArray.push(arrrone[j]);
    j++;
  }
  else if(arrrone[j] > arrayTwo[k]){
    mergedArray.push(arrayTwo[k]);
    k++;
  }
  else if(arrrone[j] == arrayTwo[k]){
    mergedArray.push(arrrone[j]);
    mergedArray.push(arrayTwo[k]);
    j++;
    k++;
  }
}

console.log(mergedArray)
talhadev

Объединить два сортированных массива

def mergeArrays(arr1, arr2, n1, n2):
    arr3 = [None] * (n1 + n2)
    i = 0
    j = 0
    k = 0
 
    while i < n1 and j < n2:
        if arr1[i] < arr2[j]:
            arr3[k] = arr1[i]
            k = k + 1
            i = i + 1
        else:
            arr3[k] = arr2[j]
            k = k + 1
            j = j + 1
 
    while i < n1:
        arr3[k] = arr1[i]
        k = k + 1
        i = i + 1
 
    while j < n2:
        arr3[k] = arr2[j]
        k = k + 1
        j = j + 1
Charity Thuku

Ответы похожие на “Объединение двух отсортированных массивов”

Вопросы похожие на “Объединение двух отсортированных массивов”

Больше похожих ответов на “Объединение двух отсортированных массивов” по Java

Смотреть популярные ответы по языку

Смотреть другие языки программирования