자료구조와 알고리즘 중에서 자주 사용되는 것들 쉽게설명하기

몽슈뜨·2023년 4월 18일
0

TIL

목록 보기
54/70
post-thumbnail

1) 스택 - 웹브라우저 방문기록(뒤로가기), 실행취소(가장 나중에 실행된 것부터 취소)
2) 큐 - 콜센터 상담 대기 혹은 은행 대기 번호표, 지하철 탈 때 카드 찍는 경우(놀이공원 등 유사)
3) 연결리스트 - 포토샵 히스토리(ctrl+z로 이전작업 돌아가기), 음악 플레이어, 꼬리물기게임, 기차놀이
4) 해시테이블 - 사전
5) 그래프 - 지하철 노선도, SNS 팔로우 관계
6) 트리 - 조직도, 가계도




스택, 큐, 배열, 링크드리스트등이 있습니다. 이진탐색,

Stack은 자료의 입력과 출력을 한 곳으로 제한한 자료구조입니다. 그래서 LIFO(Last In First Out) 구조로, 마지막에 삽입된 데이터가 먼저 삭제되는 자료구조입니다. 웹 브라우저 방문기록, undo등이 있습니다.

반면 Queue는 자료의 입력과 출력을 양쪽 끝으로 제한한 자료구조입니다. 그래서 FIFO(First In First Out) 구조로 먼저 삽입된 데이터가 먼저 삭제되는 자료구조입니다. 프린터의 인쇄 대기열, 은행 업무 등이 예시로 들을 수 있겠습니다.

배열은 정적 자료구조라고 불립니다. 그래서 배열을 만들기 위해서는 미리 크기를 정합니다. 그렇게 되면 해당 크기 만큼의 연속된 메모리 주소를 할당 받게 됩니다. 연속된 메모리를 주소로 할당 받고 있기 때문에 데이터가 인덱스를 갖게 됩니다. 인덱스를 갖게 된다는 것은 임의 접근이 가능하여 접근과 탐색에 용이합니다. 미리 크기를 정하였기 때문에 수정하는 것이 불가능합니다. 그리고 해당 배열 크기 이상의 데이터를 저장할 수 없다는 단점이 있습니다. 호텔

링크드 리스트는 동적 자료구조라 불립니다. 크기를 정할 필요가 없고 배열처럼 연속된 메모리 주소를 할당 받지 않습니다. 대신 노드라는 게 존재하며, 노드 안에 데이터가 있고, 다음 데이터를 가리키는 주소를 가지고 있습니다. 크기 제한이 없고 데이터 추가, 삭제가 자유롭다는 장점이 있습니다. 배열처럼 연속적인 메모리 주소를 할당 받지 않았기 때문에 임의 접근이 불가능하고 데이터를 탐색할 때 순차적으로 접근해야 합니다. 기차

이진 탐색 알고리즘은 정렬을 한 뒤 찾고자 하는 값과 중간 값을 비교하여 탐색 범위를 점차 좁혀가며 탐색하는 알고리즘입니다. 예를 들면 책을 찾을 때 a-z순으로 정렬을 한 뒤 중간 값
순차 탐색은 43억개중 특정 값을 찾아야 할 경우 최대 43억회지만, 이진 탐색은 32회만으로 가능하다

profile
개발자되면 맥북사줄께

0개의 댓글