반응형

코딩인터뷰 13

3강. 정렬 알고리즘

3. 정렬 알고리즘3.1 버블 정렬버블 정렬(Bubble Sort)버블 정렬은 1956년에 제어 장치 프로그래머 존 코너(John von Neumann)에 의해 처음 소개된 단순한 정렬 알고리즘입니다. 버블 정렬은 인접한 두 요소를 비교하여 정렬하는 방식으로, 가장 큰 요소가 매 반복(iteration)마다 배열의 끝으로 "거품처럼" 떠오르는 방식입니다.버블 정렬의 시간 복잡도:- 최악의 경우: \(O(n^2)\)배열이 역순으로 정렬된 경우, 모든 요소를 반복적으로 비교해야 하기 때문에 최악의 경우 \(O(n^2)\)의 시간이 소요됩니다.- 최선의 경우: \(O(n)\)배열이 이미 정렬된 경우, 한 번의 패스만 필요하므로 \(O(n)\)의 시간이 소요됩니다.// 버블 정렬 예시public class Bu..

2강. 기본 데이터 구조

2. 기본 데이터 구조2.1 배열과 연결 리스트배열(Array)배열은 동일한 타입의 요소들이 연속적으로 저장되는 데이터 구조입니다. 배열은 인덱스를 이용해 요소에 접근할 수 있으며, 고정된 크기를 가집니다. 배열의 시간 복잡도:- 접근: \(O(1)\)배열은 인덱스를 통해 직접 접근할 수 있어, 접근 시간은 배열의 크기에 상관없이 일정합니다.- 탐색: \(O(n)\)배열에서 특정 값을 찾기 위해서는 배열의 모든 요소를 확인해야 하므로, 최악의 경우 모든 요소를 확인해야 합니다.- 삽입/삭제: \(O(n)\)배열에서 요소를 삽입하거나 삭제하려면 해당 위치 이후의 모든 요소를 이동시켜야 하기 때문에, 최악의 경우 배열의 모든 요소를 이동시켜야 합니다.연결 리스트(Linked List)연결 리스트는 각 요소가..

1강. 알고리즘 소개

1. 알고리즘 소개1.1 알고리즘의 정의와 중요성알고리즘의 정의알고리즘(Algorithm)은 문제를 해결하기 위해 정해진 일련의 절차나 규칙의 집합입니다. 쉽게 말해, 알고리즘은 특정 문제를 해결하는 데 필요한 단계별 과정입니다.알고리즘은 컴퓨터 과학의 핵심 요소로, 문제를 효율적으로 해결하는 방법을 제공합니다. 예를 들어, 데이터 정렬, 검색, 최적화 문제 등을 해결하기 위해 다양한 알고리즘이 사용됩니다.역사적 배경알고리즘이라는 용어는 페르시아의 수학자 알-콰리즈미(Al-Khwarizmi)의 이름에서 유래되었습니다. 그는 9세기 초에 산술 연산 방법을 체계화한 책을 썼습니다. 이 책은 유럽에 전파되어 알고리즘이라는 용어의 기초가 되었습니다.현대 컴퓨터 과학에서 알고리즘의 중요성은 앨런 튜링(Alan T..

반응형