총 238개
-
데구알 과제1 행렬곱 시간복잡도 분석2025.05.131. 행렬곱 시간복잡도 분석 이 프레젠테이션에서는 행렬곱 연산의 시간복잡도를 분석하였습니다. 먼저 for loop를 이용한 프로그래밍 방식에서는 3개의 for문이 사용되어 Θ(n^3)의 시간복잡도가 발생합니다. 그리고 recursive 행렬곱 방식에서는 행렬을 분할하여 재귀적으로 계산하는데, 이 경우 시간복잡도는 Θ(n^3)으로 나타납니다. 이를 통해 행렬곱 연산의 시간복잡도는 O(n^3)임을 알 수 있습니다. 1. 행렬곱 시간복잡도 분석 행렬곱은 선형대수학에서 매우 중요한 연산 중 하나입니다. 행렬곱의 시간복잡도를 분석하는 것은 ...2025.05.13
-
정렬 알고리즘의 시간복잡도 및 장단점 분석2025.11.141. 버블 정렬 버블 정렬은 인접한 데이터 간의 비교와 교환을 통해 정렬하는 기본적인 알고리즘입니다. 구현이 간단하고 이해하기 쉬워 초기 프로그래밍 교육에 자주 사용됩니다. 그러나 시간복잡도가 O(n²)로 데이터 크기가 크거나 정렬이 빈번한 경우 비효율적입니다. 이미 정렬된 데이터에 대해서도 불필요한 연산을 반복하는 단점이 있어 실제 복잡한 애플리케이션에서는 잘 사용되지 않습니다. 2. 선택 정렬 선택 정렬은 최소값 또는 최대값을 선택하여 정렬되지 않은 부분의 맨 앞 요소와 교환하는 방식입니다. 데이터 교환 횟수가 버블 정렬보다 적...2025.11.14
-
정렬 알고리즘 중 선택 정렬, 버블 정렬, 퀵 정렬, 병합 정렬에 대해 설명하시오.2025.01.281. 선택 정렬 선택 정렬은 가장 단순한 정렬 알고리즘 중 하나로, 배열이나 리스트에서 정렬되지 않은 부분 중 가장 작은(또는 큰) 값을 선택해 순서대로 배치하는 방식입니다. 선택 정렬의 시간 복잡도는 O(n²)이며, 추가 메모리가 거의 필요하지 않는 장점이 있지만 정렬이 거의 완료된 경우에도 비교 횟수를 줄일 수 없어 비효율적입니다. 2. 버블 정렬 버블 정렬은 인접한 두 요소를 비교해 필요에 따라 위치를 바꾸는 방식으로 정렬을 수행하는 간단한 정렬 알고리즘입니다. 버블 정렬의 시간 복잡도는 최악 및 평균 O(n²)이지만, 배열이...2025.01.28
-
정렬 알고리즘 중 선택 정렬, 버블 정렬, 퀵 정렬, 병합 정렬에 대한 설명2025.01.201. 선택 정렬 선택 정렬은 간단한 비교 기반 정렬 알고리즘으로, 배열에서 가장 작은 요소를 찾아 첫 번째 위치와 교환하는 과정을 반복한다. 이 알고리즘은 구현이 매우 간단하지만, 시간 복잡도가 O(n^2)로 크기 때문에 큰 데이터 집합에서는 비효율적일 수 있다. 2. 버블 정렬 버블 정렬은 인접한 요소를 반복적으로 비교 및 교환하는 정렬 알고리즘이다. 배열을 순차적으로 탐색하면서 인접한 요소를 비교하여 필요시 교환하며 정렬한다. 이 과정을 반복하면서 가장 큰 요소가 배열의 끝으로 이동하게 되어 결국 배열이 정렬된다. 버블 정렬 역...2025.01.20
-
알고리즘 복잡도 표현법과 정렬 알고리즘 성능 분석2025.11.171. 알고리즘 복잡도 표기법 알고리즘의 복잡도를 표기하는 방법은 빅-오, 빅-오메가, 세타 세 가지가 있다. 빅-오 표기법은 최악의 경우 복잡도를 나타내며 상한선을 보여준다. 빅-오메가 표기법은 최선의 경우 복잡도를 나타내며 하한선을 보여준다. 세타 표기법은 평균 복잡도를 나타낸다. 이 표기법들은 입력 크기에 따른 알고리즘의 실행 시간 또는 공간 요구사항을 기술하는 방법으로, 알고리즘의 성능을 분석하고 다양한 알고리즘 간의 효율성을 비교하는 데 중요한 도구이다. 2. 버블 정렬(Bubble Sort) 버블 정렬은 배열의 모든 원소를...2025.11.17
-
인하대 데이터구조 3주차 Homework01 하노이의 탑2025.05.031. 하노이의 탑 하노이의 탑은 재귀적으로 구현할 수 있는 문제로, 입력 n에 대해 2^n - 1번의 이동이 필요합니다. 이 문제에서는 재귀 함수를 사용하여 하노이의 탑을 구현하고, 시간 복잡도와 공간 복잡도를 분석했습니다. 64개의 원판이 있는 경우 약 1.844674407 x 10^19번의 이동이 필요합니다. 1. 하노이의 탑 하노이의 탑은 고대 수학 퍼즐로, 세 개의 기둥과 n개의 원판으로 구성되어 있습니다. 이 퍼즐의 목표는 모든 원판을 한 기둥에서 다른 기둥으로 옮기는 것입니다. 이 과정에서 큰 원판이 작은 원판 위에 놓이...2025.05.03
-
알고리즘 효율성 평가: 수행시간의 역할과 한계2025.11.151. 시간 복잡도 분석 알고리즘의 수행시간은 알고리즘의 성능을 측정하는 가장 직접적인 척도입니다. 시간 복잡도 분석을 통해 알고리즘의 성능을 예측하거나 비교할 수 있으며, 프로그램이 크거나 입력 크기가 커질 때 실행 시간이 어떻게 증가하는지를 파악할 수 있는 유용한 도구입니다. 알고리즘이 빠를수록 더 효율적이라고 할 수 있습니다. 2. 알고리즘 효율성의 다중 평가 기준 알고리즘의 효율성을 평가하는 데에는 수행시간 외에도 메모리 사용량, 자원 활용, 확장성 등 다른 요소들도 고려되어야 합니다. 한 알고리즘이 다른 알고리즘보다 실행 시...2025.11.15
-
정렬 알고리즘: 선택, 버블, 퀵, 병합 정렬 비교2025.11.171. 선택 정렬(Selection Sort) 선택 정렬은 정렬되지 않은 부분에서 가장 작은 원소를 선정하여 정렬된 부분의 마지막 원소와 교환하는 방식으로 진행된다. 시간 복잡도는 O(n²)로 효율성이 낮지만, 단순하고 직관적이며 실제 위치 변경이 적다는 장점이 있다. 그러나 데이터 크기가 커질수록 성능이 급격히 저하되어 큰 데이터 세트에는 적합하지 않다. 2. 버블 정렬(Bubble Sort) 버블 정렬은 인접한 두 원소를 비교하고 교환하여 거품이 수면으로 올라오는 것처럼 정렬을 완성한다. 구현이 매우 간단하고 안정적인 정렬 방법이...2025.11.17
-
정렬 알고리즘: 선택, 버블, 퀵, 병합 정렬 비교2025.11.141. 선택 정렬 선택 정렬은 데이터 집합에서 최소값을 선택하여 올바른 위치에 배치하는 알고리즘입니다. 전체 데이터 집합의 길이만큼 반복되며 각 반복마다 하나의 요소가 정렬됩니다. 교환 횟수는 데이터 길이에 비례하지만 비교 횟수는 길이의 제곱에 비례하여 큰 데이터 세트에서 비효율적입니다. 또한 안정적이지 않아 동일한 값의 요소 순서가 바뀔 수 있습니다. 2. 버블 정렬 버블 정렬은 인접한 두 요소를 비교하여 필요시 위치를 교환하는 알고리즘입니다. 각 반복마다 가장 큰 값이 거품처럼 올라가 올바른 위치에 배치됩니다. 구현이 간단하여 초...2025.11.14
-
C언어 자료구조 8장 트리 연습문제 해설2025.11.131. 트리 순회 방법 트리 순회는 모든 노드를 체계적으로 방문하는 방법입니다. 중위 순회는 왼쪽 노드 → 현재 노드 → 오른쪽 노드 순서로, 전위 순회는 현재 노드 → 왼쪽 노드 → 오른쪽 노드 순서로, 후위 순회는 왼쪽 노드 → 오른쪽 노드 → 현재 노드 순서로 진행됩니다. 레벨 순회는 트리의 높이 1부터 h까지 왼쪽에서 오른쪽으로 순회합니다. 이진 탐색 트리를 배열로 표현할 때 0번 인덱스를 비우면 부모-자식 노드 접근이 용이합니다. 2. 이진 탐색 트리(BST) 이진 탐색 트리는 각 노드의 왼쪽 서브트리는 해당 노드보다 작고 ...2025.11.13
