Programmers/Algorithm, Data Structure 3

[Sort] 정렬 알고리즘 : #1 정렬

정렬 ? 정렬이란 순서 없이 나열된 자료들을 조건/기준을 가지고 일정한 순서가 되도록 재배열하는 것을 의미한다. 우리가 자료를 찾을 때 정렬이 되지 않은 상태에서는 탐색 자체가 어려울 뿐만 아니라 효율이 매우 떨어지게 된다. 그렇기 때문에 자료가 커질수록 반드시 효율적인 알고리즘의 사용이 필요하다! 정렬 알고리즘의 종류에 대해 알아보기 전에 용어와 고려사항에 대해 먼저 알아보자. 레코드(Record) ? 키 (Key) ? 레코드(record) 란, 리스트의 각 원소를 의미하며 필드로 구성된 정렬의 대상이다. 키(Key) 란, 레코드의 한 서브 필드로 정렬의 기준이 된다. +) 예를 들어, 교실의 학생들을 일정한 순서로 정렬시키려고 하는 경우 이름이라는 필드를 키 값으로 정렬할 수 도 있고, 생년월일이라는..

[Data Structure] 자료구조 : #2 비선형구조

[Data Structure] 자료구조의 분류 : #1 선형구조 자료구조를 잘 이용하면 저장 공간을 효율적으로 이용하고, 신속하게 실행하는 효율적인 프로그램을 작성할 수 있다. 자료구조는 크게 아래와 같이 분류한다! 단순 구조 선형 구조 비선형 구조 emayom.tistory.com 이전 포스팅에서는 선형구조를 알아봤다. 오늘은 비선형 구조인 트리 / 그래프에서 유의해야 할 특징에 대해 하나씩 정리해보려고 한다. (트리도 그래프의 일종!) 비선형구조 선형구조는 데이터가 연속적으로 연결되어있는 1:1의 구조로 하나의 데이터 뒤에는 하나의 데이터가 존재하지만, 비선형구조는 데이터가 비연속적으로 연결되어있는 1:n의 구조로 하나의 데이터 뒤에 여러개의 데이터가 존재할 수 있다. 트리 (Tree) 트리 또한 방..

[Data Structure] 자료구조 : #1 선형구조

자료구조를 잘 이용하면 저장 공간을 효율적으로 이용하고, 신속하게 실행하는 효율적인 프로그램을 작성할 수 있다. 자료구조는 크게 아래와 같이 분류한다! 단순 구조 선형 구조 비선형 구조 파일 구조 그 중 '선형 구조'와 '비선형 구조'는 데이터를 연속적으로 연결하느냐, 비연속적으로 연결하느냐로 분류한다. 선형 구조와 비선형 구조에서 유의해야 할 특징에 대해 하나씩 정리해보려고 한다. 선형구조 배열 / 연속 리스트 (Contiguous List) : 인덱스를 통한 데이터 접근, 데이터 삽입 / 삭제가 번거로움 (하지만, 밀도 1) 연결 리스트 (Linked List) : 중간 노드가 끊어지면,,,, 🤦🏻‍♂️🤦🏻‍♀️ ( +) 기억공간의 효율 ↓ / 접근 시간 ↑) 연속 리스트는 배열을 이용하기 때문에 연..