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

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

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

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

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