본문 바로가기

Programming/Practical Algorithms

(2)
[알고리즘] 정적 배열 vs 동적 배열 vs 연결 리스트 차이점 비교 1. 정적 배열- 크기가 고정되어 있으며, 선언 시 크기를 지정해야 함.- 크기 변경이 불가능함. 크기를 늘리려면 새로운 배열을 만들어 재할당해야함.- 메모리에 연속된 공간을 할당받음. - C언어 : 그냥 `int arr[10];` 같은 기본적인 배열이 정적 배열임.- C++ : C언어와 마찬가지, `std::array`도 있음.- 자바 : 그냥 `int[] arr = new int[10];` 같은 기본적인 배열이 정적 배열임.- 파이썬 : `array.array`와 `np.array`이 정적 배열임. 2. 동적 배열- 크기가 `doubling`을 통해 자동으로 늘어남.- 초기에는 작은 크기로 시작해, 크기가 부족하면 지정된 `Growth Factor`대로 더 큰 크기의 배열을 할당한 후, 기존 배열의 ..
[알고리즘] 안정 정렬 vs 불안정 정렬 (Stable Sort vs Unstable Sort) https://cuffyluv.tistory.com/123 이전에 작성한 글 참고. data = [(1, 3, 5, 7, 9), (1, 3, 2, 4, 8), (2, 2, 3, 6, 7), (3, 1, 6, 8, 10)]result = sorted(data, key=lambda x: (x[1], x[0]))print(result) # [(3, 1, 6, 8, 10), (2, 2, 3, 6, 7), (1, 3, 5, 7, 9), (1, 3, 2, 4, 8)]위와 같은 파이썬 코드가 있다.튜플을 요소로 가지는 리스트에서, 각 요소를 정렬할 건데,첫 번째 정렬 기준을 튜플의 두 번째 요소,그리고 위의 첫 번째 정렬기준이 일치할 경우, 튜플의 첫 번째 요소를 정렬 기준으로 하여서 정렬하는 코드이다. 그러면, 튜..