
총 69개
-
방통대 알고리즘 출석과제물2025.01.241. 빅오 함수 입력 크기 n에 대한 빅오 함수들을 성능 관점에서 가장 나쁜 것부터 차례대로 나열하면 O(2^n) -> O(n^3) -> O(n^2) -> O(nlogn) -> O(n) -> O(logn) -> O(1)이다. 수행시간에 비례한 효율성을 고려할 경우 n의 값이 증가하면 연산 시간도 증가하며, 뚜렷한 차이를 보인다. 따라서 시간 복잡도 함수식의 결과로 수행시간의 효율성을 증명할 수 있다. 2. 이진 탐색 이진 탐색의 점화식은 T(n) = O(1)일 때 n=1, T(n/2) + O(1)일 때 n>=2이며, 폐쇄형은 T(n...2025.01.24
-
2023년 1학기 알고리즘 출석수업 만점 받은 과제물2025.01.241. 이진 탐색 이진 탐색은 정렬된 상태의 데이터 중 원하는 값을 탐색하는 알고리즘이다. 이진 탐색은 먼저 주어진 데이터 중 중앙값이 목표 값과 일치하는 지 비교한다. 그리고 데이터가 정렬되어 있음을 이용해, 중앙값이 목표 값보다 작다면 중앙값보다 큰 값을 지니는 쪽, 중앙값이 목표 값보다 크다면 중앙값보다 작은 값을 지니는 쪽에 대해 다시 중앙값과 목표 값을 비교하며 데이터를 절반씩 줄여가는 과정을 반복하며 원하는 값을 찾는다. 2. 퀵 정렬 퀵 정렬은 데이터 중 하나의 값을 피벗으로 뽑고 데이터를 그 값보다 큰 쪽과 작은 쪽으로...2025.01.24
-
정렬 알고리즘 중 선택 정렬, 버블 정렬, 퀵 정렬, 병합 정렬에 대한 설명2025.01.151. 선택 정렬 선택 정렬은 주어진 데이터 내에서 특정 위치에 맞는 자료를 선택해 위치를 교환하는 알고리즘입니다. 구현이 간단하고 추가적인 메모리를 사용하지 않는다는 장점이 있지만, 항상 전체 데이터를 비교하고 정렬하므로 비효율적이라는 단점이 있습니다. 2. 버블 정렬 버블 정렬은 인접한 두 항목의 값을 비교한 뒤, 기준을 만족하면 두 값을 교환하여 정렬하는 방식입니다. 개념이 단순하기에 프로그래밍하기 쉽다는 장점이 있지만, 연산의 횟수가 데이터의 크기에 따라 기하급수적으로 증가하기 때문에 정렬에 걸리는 시간이 오래 걸린다는 단점이...2025.01.15
-
데이터 탐색 방법 선택을 위한 정렬 여부 확인2025.05.081. 순차 탐색 순차 탐색은 데이터 배열의 처음부터 끝까지 비교하며 탐색하는 방법으로, n개의 데이터에 대해 평균 (n+1)/2의 탐색이 필요하며 최악의 경우 n번의 비교가 필요하다. 2. 이진 탐색 이진 탐색은 정렬된 데이터에 대하여 배열의 중간값을 기준으로 계속 자르는 방식으로 탐색을 진행하며, n개의 데이터에 대해 최대 log₂n의 비교가 필요하다. 3. 데이터 정렬 여부 확인 순차 탐색을 진행할 때는 데이터 정렬 여부가 필요 없지만, 이진 탐색을 할 때는 배열이 정렬되어 있는지 확인하는 것이 가장 중요하다. 데이터의 규모에 ...2025.05.08
-
[자료구조] 하나의 프로그램을 자료구조와 알고리즘으로 나누어 설명하시오2025.05.161. 자료구조 자료구조란 컴퓨터에서 자료를 정리하고 조직화하는 구조를 의미한다. 어떠한 자료를 정리할 때 자료에 따른 적절한 자료구조가 있다. 이 자료구조에는 그에 따른 알고리즘이 따라오기 마련이다. 2. 알고리즘 알고리즘이란 어떠한 문제를 해결하는 절차이다. 컴퓨터가 문제를 해결하는 방법을 장치가 이해할 수 있도록 언어로 정밀하게 기술한 것이다. 대부분의 컴퓨터 프로그램은 데이터를 처리하며 이들 자료는 자료구조를 사용해 표현하고 저장된다. 또한 여기에는 알고리즘이 필요하다. 3. 육면체 부피 계산 프로그램 width, length...2025.05.16
-
비교 기반 정렬 알고리즘의 특성과 장단점2024.12.311. 선택 정렬 선택 정렬의 장점은 정렬을 위한 교환 횟수가 적다는 것이다. 내림차순으로 정렬된 데이터를 오름차순으로 만들 때 효율적이다. 단점은 정렬을 위한 비교 횟수가 많다는 것이다. 소수의 자료라도 추가되면 처리 속도가 현저히 떨어진다. 2. 버블 정렬 버블 정렬의 장점은 인접한 값만을 계속해서 비교하는 방식으로 구현이 쉽고 직관적이라는 것이다. 단점은 시간복잡도가 O(N^2)라는 것이며, 원소 개수가 많아질 경우 비교 연산이 많아져 성능이 저하된다. 3. 삽입 정렬 삽입 정렬의 장점은 최선의 경우 O(N)의 빠른 효율성을 가...2024.12.31
-
자료구조(프로그램을 자료구조와 알고리즘으로 나누어 설명)2025.01.031. 자료구조 자료구조는 데이터를 어떠한 형태로 저장하고 관리할 것인지에 대한 방법으로, 자료를 어떤 효율적 방법으로 저장할 것인가를 의미합니다. 프로그램을 구성하는 핵심 요소 중 하나입니다. 2. 알고리즘 알고리즘은 저장된 데이터를 찾거나 변형하거나 수정할 때 필요한 방법으로, 문제를 해결하기 위한 절차를 의미합니다. 프로그램을 구성하는 또 다른 핵심 요소입니다. 1. 자료구조 자료구조는 프로그래밍에서 매우 중요한 개념입니다. 데이터를 효율적으로 저장하고 관리하는 방법을 제공하기 때문에 복잡한 문제를 해결하는 데 필수적입니다. 배...2025.01.03
-
방통대 방송대 알고리즘 출석수업과제물 A+2025.01.251. 알고리즘 성능 분석 입력 크기 n에 대한 빅오 함수들을 성능 관점에서 가장 나쁜 것부터 차례대로 나열하면 O(2^n) → O(n^3) → O(n^2) → O(nlogn) → O(n) → O(logn) → O(1)이다. 2. 점화식과 폐쇄형 이진 탐색의 점화식은 T(n) = Θ(1), n=1 = T(n/2) + Θ(1), n>=2 이며 폐쇄형은 T(n) = Θ(logn)이다. 퀵 정렬 최악의 경우 점화식은 T(n) = Θ(1), n=1 = T(n-1) + Θ(n), n>=2 이며 폐쇄형은 T(n) = Θ(n^2)이다. 합병 정렬...2025.01.25
-
건국대학교 객체지향프로그래밍_6주차_랩실습보고서2025.05.011. ArrayData 클래스 ArrayData 클래스는 동적 배열을 구현하는 클래스입니다. 이 클래스에는 배열의 크기(capacity)와 실제 사용 중인 원소의 개수(used)를 관리하는 멤버 변수가 있습니다. 생성자, 복사 생성자, 이동 생성자, 소멸자 등의 메서드를 통해 객체의 생성과 삭제, 복사와 이동을 처리합니다. 또한 addElement(), full(), emptyArray(), showData() 등의 메서드를 통해 배열에 원소를 추가하고, 배열의 상태를 확인하며, 배열을 비우고, 배열의 내용을 출력할 수 있습니다. ...2025.05.01
-
배열의 정의, 선언, 초기화 및 활용2025.05.051. 배열의 정의 배열은 C언어에서 연속적인 메모리 영역에 동일한 데이터 타입의 여러 요소를 저장할 수 있는 구조입니다. 배열을 사용하면 데이터를 더욱 구조화된 방식으로 저장하고 접근할 수 있습니다. 2. 1차원 배열 선언 1차원 배열을 선언하려면 데이터 타입, 배열 이름, 배열 크기를 지정해야 합니다. 예를 들어, int arr[5]는 크기가 5인 int형 1차원 배열을 선언하는 것입니다. 3. 배열 활용 사례 배열은 시계열 데이터 저장, 문자열 처리, 정렬 및 검색 알고리즘 구현, 행렬 및 벡터 연산 등 다양한 상황에서 활용됩니...2025.05.05