일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 알고리즘
- 자바
- java기초
- 인프런 스프링
- 프로그래밍
- 순차탐색알고리즘
- 인프런 자바강의
- 빅-오
- eclipse 스프링
- 윤성우의 열혈구조
- 알고리즘 기초
- 코딩테스트 기초
- Spring 기초
- Java 기초
- 백기선
- 프로그래밍 기초
- Big-Oh
- 개발 기초
- 자바 기초
- 윤성우의 열혈 자료구조
- 자료구조
- 이진탐색알고리즘
- 자바 스캐너
- c언어
- 코딩테스트
- 자료구조 기초
- 시간복잡도
- 평균적인 경우
- Today
- Total
목록자료구조 기초 (4)
IT : 기초라는 뿌리

더보기 출처 : 윤성우의 열혈자료구조 이진 탐색 알고리즘은 순차 탐색보다 훨씬 좋은 성능을 보이는 알고리즘 입니다. 이진 탐색 알고리즘을 적용하기 위해서는 다음과 같은 조건이 성립되어야 합니다. " 배열안의 요소(데이터)들이 정렬되어 있어야 한다. " 해당 알고리즘은 정렬된 데이터가 아니면 적용이 불가능합니다. (정렬의 기준 및 방식과는 관계없습니다.) 때문에 이진 탐색 알고리즘보다 성능이 덜한 순차 탐색 알고리즘도 우리에겐 유용한 알고리즘 입니다. 예제를 보겠습니다. 우선 길이가 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 자료구조는 데이터를 표현하고 저장하는 방법에 대해서 설명합니다. " 프로그램이란 데이터를 표현하고 그렇게 표현된 데이터를 처리하는 것이다. " 위에서 말하는 데이터 표현은 데이터 저장을 포함하는 개념입니다. 그리고 이렇게 데이터의 저장을 담당하는 것이 바로 자료구조입니다. " 목적은 명확합니다. 자료를 더 효율적으로 저장하고, 관리하기 위해 사용하며..