Arraylist를 고려하십시오. 내부적으로 전체가 아니며 지금까지 삽입 된 요소의 수를 알고 있습니다. 요소는 정렬되지 않습니다. ArrayList에 포함 된 요소 수에 관계없이 빠르면 아래에 나열된 작업을 선택하십시오. (즉, 구현하는 데 필요한 몇 가지 지침 만 필요함). 상기 (반드시 정렬되지 않은) 정수 배열ArrayList : 삽입 대 지정된 요소의 삽입
삭제 최대치 찾기 지정된 인덱스
로부터 데이터를 얻기 주어진 인덱스
에서
삽입
삽입 주어진 인덱스
지정된 인덱스의 요소 바꾸기
특정 요소 검색
지정한 색인에서 삽입을 선택하고 지정된 색인에서 데이터를 가져오고 요소를 바꾸지 만 대답 키는 삽입이라고 표시합니다. 필자가 일반적으로 이해하고있는 것처럼, ArrayList에서 삽입 작업을 수행하려면 요소가 모두 왼쪽으로 이동해야합니다. 목록의 시작 부분에이 작업을 수행하면 $ O (n) $ 시간의 복잡성이 발생합니다. 그러나 우리가 마지막에 그것을했다면 $ O (1) $가 될 것입니다.
내 질문에 온다 : (1) 무엇을 (있는 경우) 차이가 지정된 인덱스에 삽입하고 삽입 사이가와 (2) 삽입이 특정 시간 복잡도 주어진이 "빨리"로 간주되는 이유
답안 키는 대체 목록에없는 옵션을 제공합니다. Java의 'ArrayList'의 경우 인덱스를 지정하지 않고 삽입하면 끝에 추가됩니다 (즉, 추가됨). –
@TedHopp 제 잘못, 두 가지 확실한 대답을 선택할 수 있습니다. 하나는 삽입이고 다른 하나는 지정된 인덱스에 삽입하는 것입니다. – user278039