인프런 - 부경대IT융합응용공학과 궘오흠 교수님의 '영리한 프로그래밍을 위한 알고리즘 강좌 '(링크)와 '쉽게 배우는 알고리즘 관계 중심의 사고법 - 문병로' 참조6-2. Hashing 02좋은 해시 함수란?현실에서는 키들이 랜덤하지 않음만약 키들의 통계적 분포에 대해 알고 있다면 이를 이용해서 해시 함수를 고안하는 것이 가능하겠지만 현실적으로 어려움키들이 어떤 특정한 (가시적인) 패턴을 가지더라도 해시함수값이 불규칙적이 되도록 하는게 바람직하다.해시함수값이 키의 특정 부분에 의해서만 결정되지 않아야 함해시 함수Division 기법h(k) = k mod m예: m = 20 and k = 91 ==> h(k) = 11장점: 한번의 mod연산으로 계산, 따라서 빠름단점: 어떤 m값에 대해서는 해시 함수값이 ..
Java Logging Framework, LOGBack우리는 자바 애플리케이션을 개발하면서 습관적으로 System.out.println(" ... ");을 활용한다. 대부분은 작성한 프로그램의 정확성이나 논리적인 오류를 찾아내기 위한 디버깅 과정에서 자주 사용하고, 일부 경우에만 정보를 전달하거나 에러 메시지를 전달하기 위해 사용한다. 하지만 이것은 프로그램의 성능 이슈를 발생시키기 때문에 실 서비스하는 시점에서는 개발 단계에서 곳곳에 추가했던 System.out.println(" ... ");을 찾아다니면서 제거하는 번거로운 작업을 해야 한다.여기서 이슈가 한 가지 더 발생한다. 실제 작성한 프로그램을 배포한 후, 추가로 문제가 발생한 상황에서는 다시 디버깅 메시지를 출력해서 해당 로직을 수정하는 작..
부경대 IT융합응용공학과 권오흠 교수님의 영리한 프로그래밍을 위한 알고리즘 강좌와 '쉽게 배우는 알고리즘: 관계중심의 사고법 - 문병로'등을 통한 알고리즘 학습 강좌 링크3-9. Sorting in Java일반적으로 정렬은 가장 기본적인 알고리즘이기 때문에, 대부분의 프로그래밍 언어가 표준 라이브러리의 일부로 정렬을 제공한다.따라서, 일반적인 상황에서 개발자가 직접 알고리즘을 구현할 경우는 많지 않다고 볼 수 있다.Java에서의 sorting을 알아본다. 기본 타입 데이터의 정렬Arrays 클래스가 primitive 타입 데이터를 위한 정렬 메소드를 제공한다. int[] data = new int[capacity]; //data[0]에서 data[capacity-1]까지 데이터가 꽉 차있는 경우에는 ..
부경대 IT융합응용공학과 권오흠 교수님의 영리한 프로그래밍을 위한 알고리즘 강좌와 '쉽게 배우는 알고리즘: 관계중심의 사고법 - 문병로'등을 통한 알고리즘 학습 강좌 링크3-4. 힙 정렬(Heap Sort)Heap과 Heap sort최악의 경우 시간복잡도 O(nlogn)Sorts in place - 추가 배열 불필요mergesort도 최악의경우 O(nlogn)이었지만, 추가 배열이 필요했음.이진 힙(binary heap) 자료구조를 사용O(nlogn)의 시간복잡도를 가지면서, merge sort처럼 추가적인 배열이 필요하지 않기 때문에 좋은 정렬 알고리즘 중 하나다.Heap의 정의Heap은완전 이진 트리(complete binary tree)이면서Heap property를 만족해야 한다.동일한 데이터를 ..
부경대 IT융합응용공학과 권오흠 교수님의 영리한 프로그래밍을 위한 알고리즘 강좌와 '쉽게 배우는 알고리즘: 관계중심의 사고법 - 문병로'등을 통한 알고리즘 학습 강좌 링크3-3. 빠른정렬(Quick Sort)분할정복법분할배열을 다음과 같은 조건이 만족되도록 두 부분으로 나눈다.기준값 : pivotelements in lower parts =r일 때, 정렬할 데이터가 0개 또는 1개이므로 할 일 없음. if (p = x j
부경대 IT융합응용공학과 권오흠 교수님의 영리한 프로그래밍을 위한 알고리즘 강좌와 '쉽게 배우는 알고리즘: 관계중심의 사고법 - 문병로'등을 통한 알고리즘 학습 강좌 링크3-2. 합병정렬(Merge sort)simple, slowBubble sortInsertion sortSelection sortfastQuick sortMerge sortHeap sortO(n)Radix sort 분할 정복법 "Divide and Conquer"merge sort와 quick sort는 분할 정복 알고리즘을 사용한다.기본적으로 resursion을 사용하여 문제를 해결하는 기법이다.아래의 세가지 단계를 거쳐서 문제를 해결한다.분할해결하고자 하는 문제를 작은 크기의 동일한 문제들로 분할크기는 작은 사이즈의 문제이지만, 문제..
- Total
- Today
- Yesterday
- github
- Raspberry Pi
- 시간복잡도
- vuex
- Java
- RBT
- 알고리즘
- IT융합인력양성사업단
- Wisoft
- 인프런
- Spring Boot
- vuejs
- AWS
- 자바
- Algorithm
- 라즈베리파이
- 스프링부트
- Spring
- Vue.js
- JPA
- Recursion
- 레드블랙트리
- 한밭이글스
- springboot
- 젠킨스
- 순환
- 정렬
- 무선통신소프트웨어연구실
- ORM
- 한밭대학교
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |