알고리즘 - 두 개의 순서 가 있 는 배열 을 합 쳐 하나의 질서 있 는 배열 을 구성 합 니 다.
제목: 두 개의 배열 a [] 와 b [] 가 있 습 니 다. 이 를 배열 c [] 로 합 치 려 면 c [] 도 질서 있 는 배열 이 필요 합 니 다.
두 가지 실현 사고 가 있다.
1. 새 배열 을 정의 합 니 다. 길 이 는 두 배열 의 길이 의 합 이 고 두 배열 을 모두 새 배열 로 복사 한 다음 정렬 합 니 다.
2. 두 배열 에 각각 아래 표 시 를 정의 합 니 다. 최대 길 이 는 배열 의 길 이 를 1 로 줄 이 고 비트 순환 에 따라 두 배열 을 비교 합 니 다. 작은 요 소 는 새 배열 에 넣 고 아래 표 시 는 1 을 추가 합 니 다 (주의, 비교적 큰 요소 가 대응 하 는 아래 표 시 는 1 을 추가 하지 않 습 니 다). 특정한 아래 표 시 는 배열 의 길 이 를 초과 할 때 순환 을 종료 합 니 다. 이때 비교적 짧 은 배열 은 모두 새 배열 에 넣 었 고 비교적 긴 배열 은 아직 부분 이 남 았 습 니 다.마지막 으로 남 은 부분 요 소 를 새 배열 에 넣 어 큰 성 과 를 거 두 었 다.
첫 번 째 방식 은 대부분 사람들 이 생각 하 는 것 이 고 실현 하기 쉬 우 며 다음은 두 번 째 방식 을 실현 하 는 것 이다.
코드 는 다음 과 같 습 니 다:
public static int[] MergeList(int a[],int b[])
{
int result[];
// ,
result = new int[a.length+b.length];
//i:a j:b k:
int i=0,j=0,k=0;
// , , ( , ),
while(ib.length)
if(a[i] <= b[j]) {
result[k++] = a[i++];
print(result);
System.out.println();
}else{
result[k++] = b[j++];
}
/* while *
* , , , */
while(i < a.length)
result[k++] = a[i++];
while(j < b.length)
result[k++] = b[j++];
return result;
}
다음으로 전송:https://www.cnblogs.com/clarke157/p/6910425.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.