본문 바로가기

👨‍🏫일문일답40

[20210916] 정렬 알고리즘 정렬을 위한 알고리즘을 정리하려고 한다. 1. 선택 정렬: 큰(작은) 키 값을 찾아 교환한다. 2. 버블 정렬: 인접한 키 값을 교환하고, 이미 정렬돼있으면 중단한다. 3. 삽입 정렬: 자신의 위치를 찾아서 삽입한다. 4. 쉘 정렬: 좀 더 개선된 삽입 정렬이다. 5. 퀵 정렬: 자료의 중갑 값을 정한 후 정렬한다. 6. 힙 정렬: 이진 트리 구조를 만들어 정렬한다. 7. 이진 병합 정렬: 두 개의 키를 한 쌍으로 정한 후 정렬한다. 8. 버킷 정렬: 기수 값에 따라 분배하여 정렬한다. 시간 복잡도(Big-O 표기법 사용) 비교 - 최선 ~ 최악을 같이 표기함 삽입 정렬 - O(n ~ n^2) 버블 정렬, 선택 정렬 - O(n^2) 쉘 정렬 - O(n ~ n^1.5) 퀵 정렬 - O(nlog₂n ~ n^.. 2021. 9. 16.
[20210904] 인터페이스와 추상 클래스의 차이 자바에는 인터페이스(interface)와 추상 클래스(abstract class)가 존재한다. 두 가지 모두 자바의 다형성을 보여주는 객체로서 다른 클래스에게 상속(또는 구현)이 가능하다. 인터페이스와 추상 클래스의 자식 클래스는 상속받은 클래스의 추상 메서드를 구현(메서드의 블록 안에서 수행할 작업들을 코딩)하여 사용한다. 둘 다 추상 메서드를 상속하는 것이 가능해서 비슷한 역할을 한다는 생각이 들어 그 차이를 명확히 해놓기 위해 글을 적어본다. 둘의 기능을 한 마디로 표현한다면, 인터페이스는 '설계도'나 '기술 명세서', 추상 클래스는 '레퍼런스'나 '참고서'라고 할 수 있다. 인터페이스는 상수(final static인 변수)와 추상 클래스로 이뤄져 있는데, 자식 클래스에서는 상속받은(구현된) 상수를.. 2021. 9. 14.
[20210913] 객체지향 특성 - 클래스, 객체, 상속, 캡슐화, 추상화, 다형성 클래스 객체 상속 캡슐화 추상화 다형성 2021. 9. 13.
[20210906] 검색 알고리즘 검색 알고리즘을 정리한다. 1. 선형 검색: 처음부터 차례로 검색한다. 2. 제어 검색: 이분 검색, 보간 검색 3. 블록 검색: 검색 대상의 자료를 그룹별로 블록화한다. 4. 이진 트리 검색: 이진 트리 구조를 이용하여 검색한다. 5. 해싱 검색: 검색 대상의 자료를 키 변환 작업을 통해 검색한다. 시간 복잡도 선형 검색 - O(n) 이분 검색 - O(log₂n) 이진 트리 검색 - O(log₂n) 해싱 검색 - O(1) 2021. 9. 6.
728x90