정렬된 배열 병합

bong bong·2023년 8월 24일

알고리즘

목록 보기
30/31

비내림차순 으로 정렬된 두 개의 정수 배열 및 와 및 nums1각각 의 요소 수를 나타내는 두 개의 정수 및 가 제공됩니다 .nums2mnnums1nums2

내림차순 으로 정렬된 단일 배열로 nums1및 병합합니다 .nums2

최종 정렬된 배열은 함수에 의해 반환되지 않고 대신 배열 내부에 저장nums1 되어야 합니다 . 이를 수용하기 위해 nums1의 길이는 입니다 m + n. 여기서 첫 번째 m요소는 병합해야 하는 요소를 나타내고 마지막 n요소는 로 설정되어 0무시되어야 합니다. nums2의 길이를 가집니다

 		int A = m -1;
       int B = n -1;
       int C = m + n - 1;
       while(A>=0 && B>= 0){
           if(nums1[A] > nums2[B]){
               nums1[C] = nums1[A];
               A--;
           }else{
               nums1[C] = nums2[B];
               B--;
           }
           C--;
       }


       while (B >= 0) {
           nums1[C] = nums2[B];
           B--;
           C--;
       }

A랑 B중 둘중 하나가 0이 될때 까지 실행한다. nums1[A] 랑 num2[B] 배열을 비교해서 안에있는 값을 찾아서 num1 배열에 저장한다. 만약 num2 배열에 배열에 값이 남아있으면 num1에 붙여넣는다.

profile
let's go invent tomorrow rather than worrying about what happened yesterday - Steven Paul Jobs

0개의 댓글