일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Java 기초
- 윤성우의 열혈구조
- 자료구조 기초
- 인프런 스프링
- eclipse 스프링
- 빅-오
- 자바 스캐너
- 순차탐색알고리즘
- 윤성우의 열혈 자료구조
- 코딩테스트
- c언어
- 프로그래밍 기초
- 백기선
- 개발 기초
- 평균적인 경우
- Big-Oh
- 알고리즘 기초
- 프로그래밍
- 이진탐색알고리즘
- 시간복잡도
- 자료구조
- 알고리즘
- 자바 기초
- Spring 기초
- java기초
- 코딩테스트 기초
- Java
- 평균의경우
- 인프런 자바강의
- 자바
- Today
- Total
목록자료구조 (6)
IT : 기초라는 뿌리

더보기 출처 : 윤성우의 열혈 자료구조 빅-오 표기법(Big-oh Notation) 데이터의 수 n과 그에 따른 시간 복잡도 함수 T(n)을 정확히 그리고 오차 없이 구하는 것은 대부분의 경우 쉽지 않다. 따라서 오차를 허용하지 않으면 ‘+1을 넣는게 맞다 아니다’로 투닥일 것이다. ex) T(n) = 2n + 1.234..... 이다!!! 하지만 여기서 중점적인 한마디는 그냥 “빅-오만 따지자“ 이다. 도대체 이 빅-오(Big-oh Notation)란 무엇인가? - O가 매우 크다? 사실상 맞다고 한다. 빅-오라는 것은 함수 T(n)에서 가장 영향력이 큰 부분이 어딘가를 따지는 것인데, 이때 사용되는 표기법에 대문자 O 즉, 큰 O를 사용하기 때문에 빅-오라고 한다. 설명을 위한 함수식 기본 함수 형태..

더보기 출처 : 윤성우의 열혈 자료구조 이진 탐색 알고리즘을 다시 살펴봅시다. - 이진 탐색 알고리즘의 탐색 시작과 끝 위치의 변화 - 시작위치 인덱스가 first, 탐색 마지막 위치 인덱스가 second - 이진 탐색 알고리즘이 진행되면 first와 second는 거리를 줄여나가고 있다. * first : 왼쪽, last : 오른쪽 Q. 이진 탐색 알고리즘은 언제까지 계속되어야 할까? ??? : first와 last가 만날때까지 계속 되어야 합니다. first와 last가 만나면 탐색 대상이 존재하지 않음을 뜻하지 않나요? * 잘못된 생각이다. first와 last가 만났다는 것은 탐색의 대상이 아직 하나 남아있음을 뜻한다. 따라서 이진 탐색은 first < last, first==last인 상황에서도..

더보기 출처 : 윤성우의 열혈자료구조 이진 탐색 알고리즘은 순차 탐색보다 훨씬 좋은 성능을 보이는 알고리즘 입니다. 이진 탐색 알고리즘을 적용하기 위해서는 다음과 같은 조건이 성립되어야 합니다. " 배열안의 요소(데이터)들이 정렬되어 있어야 한다. " 해당 알고리즘은 정렬된 데이터가 아니면 적용이 불가능합니다. (정렬의 기준 및 방식과는 관계없습니다.) 때문에 이진 탐색 알고리즘보다 성능이 덜한 순차 탐색 알고리즘도 우리에겐 유용한 알고리즘 입니다. 예제를 보겠습니다. 우선 길이가 9인 배열에 다음과 같이 정렬된 상태로 데이터가 저장되어 있습니다. (배열의 이름은 arr) 해당 배열의 이진 탐색 알고리즘의 첫 번째 시도는 다음과 같습니다. 1. 배열 인덱스의 시작과 끝은 각각 0과 8입니다. 2. 0과 ..

더보기 윤성우의 열혈자료 구조를 토대로 작성한 글입니다. "평균의 경우 시간 복잡도를 계산하는것은 쉽지 않구나! 라는 정도만 느끼자." 평균적인 경우의 시간복잡도를 구할때의 가정 2가지 입니다. 1. 탐색 대상이 배열에 존재하지 않을 확률을 50%라고 가정 2. 배열의 첫 요소부터 마지막 요소까지 탐색 대상이 존재할 확률은 동일하다. 가정 1부터 연산횟수를 계산해 보겠습니다. (존재하는 경우와 존재하지 않는 경우) * 배열에 탐색 대상이 존재하지 않는 경우 데이터의 수가 n개일 때, 총 n번의 비교연산을 진행해야 합니다 (총 n 번의 비교연산이 끝나야 비로소 탐색 대상이 존재하지 않음을 판단할 수 있다.) 따라서 배열에 탐색 대상이 존재하지 않는 경우의 연산횟수는 다음과 같습니다. > 탐색 대상이 존재하..

순차탐색(Sequential Search) = 선형 탐색(Linear Search) 글에 인용한 정보 서적 : 윤성우의 열혈자료구조 사이트 출처 : https://blog.hexabrain.net/245, https://inpages.tistory.com/143 데이터가 모인 데이터 배열이 있으면 이 데이터 배열의 처음부터 끝까지 차례대로 비교하여 원하는 데이터를 찾아내는 알고리즘입니다. 이 순차 탐색은 데이터를 따로 조작할 필요가 없어 단순하지만 비효율적이라는 단점을 지니고 있습니다. 오늘은 순차 탐색 알고리즘에서 시간복잡도 분석과 핵심요소를 알아볼까 합니다. 위에서 간단하게 소개했듯이 맨 앞에서부터(0번째 인덱스부터) 순서대로 탐색을 진행하는 알고리즘 입니다. 언어는 C언어 이고 아래 코드로 먼저 볼..

더보기 본 글은 윤성우님의 "열혈자료구조" 책을 토대로 작성한 글입니다. 언어 베이스는 C언어입니다. 교재가 학습하는데 정말 많은 도움이 되었습니다. 제가 정리해서 쓴 글이라 본 서적에서 생략되어 있는 부분이 있지만 직접 구매하셔서 심도있는 공부 추천드립니다 (다른 책들도 가능합니다 !) 참고 : https://andrew0409.tistory.com/148 자료구조는 데이터를 표현하고 저장하는 방법에 대해서 설명합니다. " 프로그램이란 데이터를 표현하고 그렇게 표현된 데이터를 처리하는 것이다. " 위에서 말하는 데이터 표현은 데이터 저장을 포함하는 개념입니다. 그리고 이렇게 데이터의 저장을 담당하는 것이 바로 자료구조입니다. " 목적은 명확합니다. 자료를 더 효율적으로 저장하고, 관리하기 위해 사용하며..