반응형

list 5

리스트(List)와 배열(Array)의 차이점

데이터 구조에서 리스트(List)와 배열(Array)은 요소 모음을 저장하고 조작하는 데 사용되는 두 가지 기본 데이터 유형입니다. 언뜻 보기에는 비슷해 보이지만 리스트(List)와 배열(Array)에는 다양한 유형의 애플리케이션에 적합한 몇 가지 주요 차이점이 있습니다. 1. 차이점 동적 크기와 정적 크기: 리스트(List)와 배열(Array)의 가장 큰 차이점 중 하나는 배열(Array)은 고정된 정적 크기인 반면, 리스트(List)은 요소를 추가하거나 제거할 때 동적으로 커지거나 작아질 수 있다는 점입니다. 즉, 배열(Array)은 컬렉션의 크기를 미리 알고 있고 변경될 가능성이 거의 없는 상황에 가장 적합한 반면, 리스트(List)은 컬렉션의 크기를 동적으로 조정해야 하는 상황에 더 적합합니다. ..

공부/기타 2023.04.03

리스트(List)에서 100만번째 데이터를 찾는데 검색 속도를 줄이려면 어떻게 해야할까?

리스트 구조에서 백만 번째 데이터를 찾기 위해 검색 속도를 줄이는 것은 목록 검색의 선형 시간 복잡성으로 인해 어려울 수 있습니다. 그러나 다음 방법들은 검색 속도를 개선하는 데 도움이 되는 몇 가지 전략입니다. 1. 인덱싱 : 한 가지 접근 방식은 데이터를 목록의 해당 위치에 매핑하는 인덱스를 만드는 것입니다. 이렇게 하면 목록에서 올바른 위치로 빠르게 이동하여 원하는 데이터를 찾을 수 있습니다. 2. 정렬(Sorting) : List의 데이터를 정렬하면 이진 검색 알고리즘을 사용하여 로그 시간으로 원하는 데이터를 찾을 수 있습니다. 3. 해시 테이블 : 또 다른 접근 방식은 해시 테이블을 사용하여 목록에 데이터를 저장하고 데이터를 해당 위치에 매핑하는 것입니다. 이를 통해 일정 시간 조회를 사용하여 ..

공부/자료구조 2023.02.11

삽입, 삭제가 계속 일어난다고 했을 때 Vector가 느릴까? List가 느릴까?

특정 상황과 데이터 크기에 따라 다르겠지만, 일반적으로 데이터가 작을 경우, 요소를 삽입하거나 삭제할 때는 리스트가 더 빠르며 데이터가 클 경우, 중간에 요소를 삽입하거나 삭제할 때는 벡터가 더 빠릅니다. 이는 벡터가 연속 메모리에 요소를 저장하기 때문에 벡터 중간에 요소를 삽입하거나 삭제하려면 삽입 또는 삭제 지점 이후의 모든 요소를 이동해야 하지만 리스트은 단순히 요소를 삽입하거나 삭제하기 위해 포인터를 조정할 수 있습니다. 그러나 벡터는 리스트에 비해 메모리를 덜 사용하기 때문에 메모리 효율성도 더 높습니다.

공부/기타 2023.01.13

데이터 내부에 값이 1만개 이하일 경우 Vector가 빠를까? List가 빠를까?

만약 특정한 데이터를 찾을 경우 벡터가 리스트보다 빠르다. 왜냐하면 벡터가 연속된 메모리를 사용하고, 또 operator[]를 사용하여 일정한 시간에 액세스할 수 있기 때문이다. 반면에 리스트는 노드들이 일련의 연결로 구성되어 있으며 특정 요소에 액세스하려면 리스트 전체의 처음부터 끝까지 확인해야 하기 때문입니다. 그렇지만, 컨테이너 중간에 요소를 삽입하거나 삭제해야 하는 경우 리스트가 일반적으로 벡터보다 빠릅니다. 이렇게 하면 반복자와 참조가 무효화되지 않습니다. 반면에 벡터를 사용하면 메모리를 재할당하고 메모리를 재할당해야 할 수 있습니다. 이럴 경우 모든 요소를 새 메모리 위치에 복사합니다. 이로 인해 리스트가 벡터보다 작업을 빠르게 진행할 수 있습니다. 그렇지만, 리스트의 각 요소는 별도의 노드로..

공부/기타 2023.01.11

벡터(Vector)와 리스트(List)의 개념 및 차이점

1. 벡터(Vector) 벡터의 개념을 알기 위해서는 먼저, 배열을 알아야 합니다. 배열은 모두 동일한 유형을 갖는 요소들을 저장하는 데이터 구조입니다. 이 요소들은 저장 될 때 메모리에 연속적으로 저장됩니다. 즉, 요소와 요소 사이에 간격이 없이 차례로 메모리에 배치됩니다. 배열은 배열의 위치(인덱스(index))에 따라 배열 개별 요소에 효율적으로 액세스할 수 있는 간단한 데이터 구조입니다. 배열에 있는 요소의 인덱스는 배열에 있는 요소의 위치에 해당하는 음이 아닌 정수입니다. 즉, 첫 번째 요소는 인덱스가 0이고 두 번째 요소는 인덱스가 1인 식입니다. 배열의 각 요소는 배열 표기법을 사용하여 인덱스로 액세스할 수 있습니다. 예를 들어 myArray[i]는 myArray의 i번째 요소를 반환합니다...

공부/C++ 2023.01.10
반응형