2017-10-31 3 views
-3

배열 A와 다른 배열 B가 있습니다. A에서 B의 요소를 제거하려면 어떻게해야하며 알고리즘의 실행 시간은 어떻게됩니까? 허용 된 중복.다른 배열 알고리즘에서 하나의 배열 요소 제거

미리 감사드립니다.

+1

제거 방법은 구현에 따라 다릅니다. 구현 언어를 지정하지 않았습니다. 알고리즘 레벨에서, 단지'B-A' 세트입니다. 실행 시간은 하드웨어, 언어, 배열 구현, 실행중인 하드웨어, 배열 크기에 따라 다릅니다 ... – Prune

+0

어떤 알고리즘을 사용 하시겠습니까? 지금까지 뭐 해봤 어? – ilim

답변

0

단일 배열은 최악의 경우 실행 시간이 O (N)이고 두 배열의 실행 시간은 일반적으로 O (N^2)입니다. 시스템 이벤트 또는 사용자 입력을 사용하여 요소를 제거 할 수 있습니다 (예 : 문자열 배열의 경우 사용자가 제거 할 요소를 선택하고 해당 인덱스에 빈 문자열을 할당하거나 시스템 이벤트를 사용하여 필요한 요소를 제거 할 수 있습니다.

0

실행 시간은 구현에 따라 다릅니다.

정렬 A와 실행 시간은 O ((A + B) log A) 일 수 있습니다. A와 B의 값이 해시 할 수있는 경우

, 실행 시간은

당신이 배열 요소는, 상대 질서를 유지 항목을 제거하는 방법에 대한 상관하지 않는 경우

는 O O (A + B)가 될 수 (1). 마지막 항목으로 제거하려는 항목을 교환하고 크기를 줄이십시오.

+0

동일한 복잡도로 요소 순서를 유지할 수 있습니다 - 중복을 찾지 못하고 (계산) 좋은 요소를 i 번째 위치에서'A [i - dupcount]'로 옮깁니다 – MBo