본문 바로가기
728x90
반응형

배열3

Array와 List 그리고 IList List Vs Array- List 내부를 보면 Array를 사용한다. 즉 List는 Array를 한번 감 싼 구조라고 생각하면 편하다. 둘의 가장 큰 차이는 Capacity에 유연성- 데이터 사이즈가 가변적인 경우 List를 고정적인 경우 Array를 사용하기 때문-  Array는 연속적인 메모리 위치에 동일한 데이터 유형의 요소를 저정하고, List는 연속적인 메모리 위치에 저장되지 않는다. 성능 차이그러다 보니 List는 삽입 삭제 과정에서 Array보다 느리다. 왜냐면 사이즈가 변하면서 메모리를 재할당 하니깐. IList?IList는 배열과 ArrayList의 기반 인터페이스다. 그치만 Non-Generic이다.그러다보니 컬렉션에 추가된 모든 요소가 Object로 변환되고 이걸 다시 쓰려면 타입을.. 2024. 7. 20.
[자료구조] 동적 배열(Dynamic Array) 동적 배열의 필요성 -배열은 고정된 크기의 연속된 배열 요소들의 집합이므로 배열을 초기화 시 미리 배열의 크기를 정해야 한다. -그러나 때론 미리 이 크기를 정할수 없는 경우가 있고, 중간에 배열을 확장해야 하는 경우가 있다. -이런 상황에 사용하는 것이 동적 배열이며 .NET에는 ArrayList와 List가 있다. 동적 배열의 시간 복잡도 -배열(정적 배열)과 같이 인덱스를 통해 한 요소에 접근시 O(1) -배열의 요소 개수 n개에 대하여 특정 값을 탐색하는 시간 O(n) ArrayList 클래스 -모든 배열 요소가 object 타입인 Non-Generic 동적 배열 클래스다. -.Net의 Non-Generic클래스들은 System.Collections namespace 안에 있다. -박싱(value.. 2023. 6. 21.
[자료구조] 배열(Array) 배열 -연속적인 메모리상에 동일한 타입(or 그의 파생타입)의 요소를 일렬로 저장하는 자료구조 -인덱스를 사용하여 직접적으로 엑세스 가능 -고정된 크기를 갖는다 -> 초기화시 해당 크기 그대로 유지 (중간에 새로 사이즈를 바꾸지 않는다면) 배열의 시간 복잡도 -배열의 사이즈와 상관없이 한 요소에 접근하는 시간은 인덱스 사용시 O(1) -특정 요소를 찾기 위해선 배열의 크기 n에 대하여 O(n) 배열 최적화 -정렬된 배열에서 값을 찾는 경우, Binary Search를 이용하여 O(long n) 가능 배열 사용법 -ex) 1부터 10까지 합을 출력하는 프로그램 class Program { static void Main(string[] args) { int[] numArray = new int[10]; in.. 2023. 6. 20.
728x90
반응형