배열에서 두 숫자의 합계를 모두 찾아야합니다. 그것이 같으면 인쇄하십시오. 이 문제에 대한 선형 해결책은 O (N^2) 복잡도입니다. 정렬 및 이진 비교를 생각했습니다. 복잡도는 여전히 (NlogN + N)정렬되지 않은 배열에서 값 찾기
문제는 모든 조합을 찾아야한다는 것입니다.
이 문제의 선형 해결책 예 :
//Linear search, find all the combinations
Find(int a[], int Target)
{
for(i=0; i<arr_size; i++)
for(j=0; j<arr_size; j++)
if((a[i]+a[j]) == Target)
cout<<a[i]<<a[j]
}
추가로 복잡성을 줄일 수있는 방법이 있습니까?
덕분에, 전문가
개선 "복잡성은 여전히 (NlogN + N)이다"- O (NlogN)의 복잡성에 어떤 문제가 있습니까? –
선형 솔루션은'if (i! = j && (a [i] + a [j]) == Target''을 가져야합니다. 분류 자체가 복잡해지면 정렬이 어떻게 도움이되는지 명확하지 않습니다. – nnnnnn