Loading [MathJax]/jax/output/CommonHTML/jax.js
반응형

알고리즘 16

5강. 고급 데이터 구조

5. 고급 데이터 구조5.1 AVL 트리와 레드-블랙 트리AVL 트리(AVL Tree)AVL 트리는 1962년 Georgy Adelson-Velsky와 Evgenii Landis에 의해 소개된 이진 탐색 트리로, 모든 노드의 균형을 유지하기 위해 각 노드의 왼쪽 서브트리와 오른쪽 서브트리 높이 차이가 최대 1이 되도록 유지합니다. 삽입 또는 삭제 후에 균형을 맞추기 위해 회전 연산을 수행합니다.AVL 트리의 시간 복잡도:- 삽입, 삭제, 검색: O(logn)트리의 높이가 O(logn)이므로, 삽입, 삭제, 검색 모두 O(logn) 시간이 소요됩니다.// AVL 트리 예시 (간단한 노드 회전 예제 포함)class AVLNode { int key, height; A..

4강. 검색알고리즘

4. 검색 알고리즘4.1 선형 검색선형 검색(Linear Search)선형 검색은 1950년대 초기에 처음 사용된 가장 기본적인 검색 알고리즘 중 하나입니다. 배열이나 리스트의 첫 번째 요소부터 마지막 요소까지 순차적으로 비교하여 원하는 값을 찾는 방식입니다.선형 검색은 정렬되지 않은 배열이나 리스트에서 사용할 수 있는 가장 단순한 검색 방법입니다.선형 검색의 시간 복잡도:- 최악의 경우: O(n)배열의 마지막 요소까지 탐색해야 하는 경우, 모든 요소를 확인해야 하므로 O(n)의 시간이 소요됩니다.자바에서 선형 검색을 구현하려면, 배열과 반복문에 대한 기본적인 이해가 필요합니다. 배열은 연속된 메모리 공간에 요소들을 저장하며, 반복문은 배열의 각 요소를 순차적으로 탐색하는 데 사용됩니다./..

3강. 정렬 알고리즘

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

2강. 기본 데이터 구조

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

[News] 삼성SDS, 알고리즘으로 겨루는 스타크래프트 대회 개최

삼성SDS(대표, www.samsungsds.com)는 13일 잠실캠퍼스에서 총 270개팀 631명이 참가한‘알고리즘 경진대회’를 개최했다고 밝혔다. 전 직원들의 높은 관심 속에 2013년부터 매년 열리고 있는 알고리즘 경진대회는 사람대신 알고리즘 적용 봇(BOT)으로 컴퓨터 게임 승부를 겨루는 대회이다. 삼성SDS는 이 대회를 통해 임직원들의 개발 능력을 증진하고 대회가 끝난 후에는 우수한 성적을 거둔 팀의 소스 코드를 리뷰하여 우승 노하우도 공유한다. 올해는 지난해에 이어 임직원들의 설문조사에서 가장 인기가 높았던 스타크래프트 게임을 경진대회 종목으로 선정했다. 스타크래프트를 할 때 분당 명령을 내리는 속도를 의미하는 APM(Action Per Minute)이 일반인의 경우 100이하고 프로게이머가 ..

[알고리즘] 알고리즘이란

+ 프로그램 개발 과정 일반적으로 프로그램을 개발할 때는, 아래와 같이 5가지 단계를 거쳐 개발이 됩니다.  요구사항 → 분석 → 설계 → 정제 및 코딩 → 검증  이때 요구사항, 분석, 설계 단계에서 필요한 부분이 바로 자료구조와 알고리즘입니다.보통 프로그램은 데이터를 유한이 입력하여 결과를 뽑아내는 구조인데,입력을 통해 결과 추출 할 때, 보통 자료구조와 알고리즘이 쓰입니다. 그럼, 자료구조와 알고리즘의 정의에 대해 알아보겠습니다. + 자료구조 및 알고리즘 • 자료구조 : 문제를 해결하기 위해 표현하는 데이터 조직• 알고리즘 : 표현된 데이터를 처리하기 위한 명령어들의 단계별 절차• 프로그램 : 프로그래밍 통한 알고리즘의 구현+ 알고리즘의 중요성같은 문제를 풀더라도 컴퓨터 프로그래밍에선 효율이 엄청 ..

반응형