반응형 컴퓨터과학100 [정렬 알고리즘 비교] 버블, 삽입, 퀵, 병합 정렬 정렬은 데이터를 정해진 순서에 맞게 배열하는 과정으로, 많은 알고리즘이 존재합니다. 그중에서 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬은 기본부터 고급까지 다양한 문제에서 사용됩니다. 이번 포스트에서는 이 네 가지 정렬 알고리즘의 작동 원리와 차이점을 비교해보겠습니다.1. 버블 정렬 (Bubble Sort)1) 알고리즘 설명• 인접한 두 요소를 비교하여, 순서가 잘못된 경우 서로 교환합니다.• 가장 큰 값이 매번 오른쪽 끝으로 “거품처럼 올라가는” 방식입니다.2) 특징• 시간 복잡도: • 최선: O(n) (이미 정렬된 경우). • 평균 및 최악: O(n2).• 공간 복잡도: O(1) (제자리 정렬, 추가 메모리 필요 없음).• 장점: 구현이 간단함.• 단점: 데이터 크기가 클 경우 비효율적.. 2025. 1. 7. [시간 복잡도를 이해하는 법] 효율적인 알고리즘을 위한 첫걸음 백준이나 프로그래밍 문제 푸는 사이트에서 코딩테스트를 준비하다보면 시간복잡도? 라는 것을 들을 수 있습니다저는 비전공자라 정보처리기사를 공부하면서 너무 복잡하기 때문에 찾아보며 정리할 수 밖에 없죠 그래서 한번 정리를 해보겠습니다!1. 시간 복잡도란?1) 정의시간 복잡도는 알고리즘이 입력 크기(n)에 따라 실행되는 연산 횟수를 수학적으로 표현한 것입니다.2) 주요 개념• 입력 크기(n): 문제를 해결하기 위해 처리해야 할 데이터의 양.• 실행 시간: 알고리즘이 완료되는 데 걸리는 시간(보통 연산 횟수로 측정).3) 시간 복잡도의 중요성• 입력 데이터가 증가할수록 알고리즘의 성능이 어떻게 변화하는지 파악.• 더 효율적인 알고리즘 설계를 가능하게 함.2. 시간 복잡도의 표기법시간 복잡도는 주로 **빅오 표기.. 2025. 1. 7. [딕셔너리와 맵의 차이점] 자료구조의 구현방식 살펴보기 프로그래밍에서 딕셔너리(Dictionary)와 맵(Map)은 키-값(Key-Value) 쌍으로 데이터를 저장하고 관리하는 자료구조입니다. 두 개념은 비슷해 보이지만, 사용 언어나 구현 방식에 따라 차이가 있습니다. 이번 포스트에서는 딕셔너리와 맵의 차이점을 명확히 설명해보겠습니다.1. 딕셔너리란?1) 정의• 딕셔너리는 Python에서 제공하는 키-값 기반 자료구조입니다.• 해시 테이블(Hash Table)을 기반으로 구현되어 있어 빠른 검색, 삽입, 삭제가 가능합니다.2) 특징• 키는 고유(unique)해야 하며, 변경 불가능(immutable)한 자료형만 가능합니다.예: 문자열, 숫자, 튜플 등.• 값은 어떤 자료형도 허용됩니다.• 키를 통해 값을 빠르게 검색할 수 있습니다.3) Python에서 딕셔너.. 2025. 1. 7. [우선순위 큐와 힙] 효율적인 데이터 처리의 핵심! 우선순위 큐(Priority Queue)와 힙(Heap)은 효율적으로 데이터를 관리하고 처리하는 데 중요한 자료구조입니다. 특히, 우선순위가 중요한 작업 예를들어 작업 스케줄링, 네트워크 패킷 처리에서 자주 사용됩니다. 이번 포스트에서는 우선순위 큐와 힙의 개념, 차이점, 그리고 활용 사례를 알아보겠습니다!1. 우선순위 큐(Priority Queue)란?1) 정의• 우선순위 큐는 데이터가 우선순위에 따라 정렬되고 처리되는 큐입니다.• 일반적인 큐(FIFO)와 달리, 우선순위가 높은 데이터가 먼저 처리됩니다.2) 동작• 삽입: 데이터와 우선순위를 함께 저장.• 삭제: 우선순위가 가장 높은 데이터를 삭제.3) 특징• 우선순위 큐는 내부적으로 힙(Heap)을 사용해 구현되는 경우가 많습니다.• 우선순위가 동일.. 2025. 1. 7. [트리 구조와 이진 트리] 자료구조의 기초를 배우자! 프로그래밍과 데이터 구조를 배우다 보면 트리(Tree)와 이진 트리(Binary Tree)라는 개념이 자주 등장합니다. 공부하면서 내용을 정리해보겠습니다. 이번 포스트에서는 트리 구조와 이진 트리에 대해 간단하고 명확하게 정리해보겠습니다.1. 트리(Tree)란?1) 트리의 정의• 트리는 계층적 데이터 구조로, 노드(Node)와 엣지(Edge)로 구성됩니다.• 루트 노드(Root Node): 트리의 최상위 노드.• 잎 노드(Leaf Node): 자식이 없는 노드.• 자식(Child)과 부모(Parent): 각 노드 간의 계층적 관계.2) 트리의 주요 용어• 레벨(Level): 트리에서 루트 노드로부터의 깊이.• 깊이(Depth): 트리의 최대 레벨.• 차수(Degree): 노드가 가지는 자식 노드의 개수... 2025. 1. 7. [스택과 큐의 활용 사례] 꼭 알아야 할 자료구조 활용법 공부를 하다보면 기본 개념이 정리가 되지 않아 헷갈리는 경우가 많습니다스택과 큐는 사실 프로그램 개발할 때 적용하는 기본 원리인 것 같아요 아직 제대로 된 프로젝트를 혼자 구현해볼 수 있는 정도는 아니지만 그래도 기본 개념은 항상 머릿속에 적립해놔야할 것!1. 스택(Stack)이란?• 스택은 LIFO(Last In, First Out) 구조로, 마지막에 들어간 데이터가 가장 먼저 나옵니다.• 비유: 접시 쌓기 → 가장 위에 있는 접시를 먼저 꺼냄.스택의 동작1. Push: 데이터를 스택에 추가.2. Pop: 가장 위의 데이터를 제거.3. Peek/Top: 가장 위의 데이터를 확인.2. 스택의 활용 사례1) 함수 호출 관리 (Call Stack)• 설명: 함수 호출 정보를 스택에 저장하여 실행 순서를 관리.. 2025. 1. 7. 이전 1 ··· 13 14 15 16 17 다음 반응형