자료구조 (1) - 배열(Array), 링크드 리스트(Linked List), 큐(Queue), 스택(Stack) (with.Python)
자료구조(Data Structure)란? 자료구조의 정의 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법입니다. 데이터 특성에 따라서, 체계적인 데이터 구조화가 필요하며, 이러한 데이터 구조는 코드의 효율성과 성능을 결정합니다. 자료구조의 종류 대표적인 자료구조로는 배열(Array), 큐(Queue), 스택(Stack), 링크드 리스트(Linked List), 해쉬 테이블(Hash Table), 힙 (Heap) 등이 존재합니다. Python에서는 대표적으로 List, Tuple, Set, Dictionary가 존재하며, 위의 자료구조 대부분을 모두 구현할 수 있습니다. 1. 배열(Array) 장점 : Array는 논리적 순서와 물리적 순서가 일치합니다. 따라서 index값을 통한 원..
2021. 6. 29.
Sorting (1) - 정렬 알고리즘 구현하기 (Bubble, Selection, Insertion) (with.Python)
Bubble Sort (버블정렬) 인접한 두 원소를 검사하여 큰 값이 오른쪽으로 이동하는 과정을 반복하여, 비교했던 모든 값들의 최댓값을 맨 오른쪽으로 옮긴다. 시간복잡도가 최악의 경우 (Big O) O(n^2)로 (n-1) + (n-2) + ··· + 1번 비교가 이루어진다. 그러나, 데이터가 잘 정렬되어 있다면 O(n)으로 데이터 정렬 여부를 파악하기 위한 알고리즘으로 사용될 수 있다. def swap(x, i, j): x[i], x[j] = x[j], x[i] def bubbleSort(x): for size in reversed(range(len(x))): for i in range(size): if x[i] > x[i+1]: swap(x, i, i+1) return x if __name__ ==..
2021. 6. 28.