본문 바로가기

지난 학기들의 기록/알고리즘28

[강의노트] 해시 테이블 - 2 해시 테이블 - 2 https://man-25-1.tistory.com/177 [강의노트] 해시 테이블 - 1 해시 테이블 - 1 해시 테이블에 대한 강의 내용을 정리한 포스팅입니다. 개인 공부를 위해 작성되는 게시글이니 참고해주세요. 해시테이블 해시테이블은 키 - 주소 매핑에 의해 구현된 사전 ADT man-25-1.tistory.com 위의 게시글에 이어지는 내용입니다. 개방주소법에서의 갱신 이전글에서 개방주소법 알고리즘의 삭제는 조금 복잡한걸 언급했었다 한번 알아보자. 비활성화 전략이라는 개념이 나오는데 이것은 이전에 설명한 삭제에서 생기는 오류를 방지하기 위한 전략이다. findElement메소드를 보면 탐색과정에서 empty 상태를 탐색의 끝으로 보고 비어있는 셀을 만나면 탐색을 실패한것으로 간.. 2021. 10. 29.
[강의노트] 해시 테이블 - 1 해시 테이블 - 1 해시 테이블에 대한 강의 내용을 정리한 포스팅입니다. 개인 공부를 위해 작성되는 게시글이니 참고해주세요. 해시테이블 해시테이블은 키 - 주소 매핑에 의해 구현된 사전 ADT 이다. (이전에 선형트리 사전, 이진탐색트리 사전을 배웠었다) 키 - 주소 매핑에 대한 예시를 들면 학번을 키 값으로 설정해서 학번에 따라 방 배정을 했을경우 학번 - 방번호에 대한 매핑이 된 것 예시로는 컴파일러의 심볼 테이블, 환경변수들의 레지스트리 등이 있다. 해시테이블 은 버켓 배열 + 해시 함수이다. 위의 예시에서 방 이 버켓 배열이라면, 학번을 3으로 나누었을때 나머지에 따라서 방을 분배하자 와 같은 아이디어가 해시함수에 해당된다고 할 수 있다. 항목들의 키를 주소(즉, 배열 첨자)로 매핑함으로서 1차원.. 2021. 10. 25.
[강의노트] 사전ADT를 이용한 선형탐색과 이진탐색 - 3 사전ADT를 이용한 선형탐색과 이진탐색 - 3 사전ADT 3번째 강의노트로 아래의 두 게시글에 이어지는 내용입니다. 사전ADT를 이용한 선형탐색과 이진탐색 - 1 [강의노트] 사전ADT를 이용한 선형탐색과 이진탐색 - 1 사전ADT를 이용한 선형탐색과 이진탐색 - 1 먼저 이전시간까지 다룬 정렬알고리즘들을 복습할 겸 정리해보고, 새로 배울 내용인 사전 ADT를 공부해보자. 비교정렬 알고리즘의 비교 정렬의 안정성 man-25-1.tistory.com 사전ADT를 이용한 선형탐색과 이진탐색 - 2 [강의노트] 사전ADT를 이용한 선형탐색과 이진탐색 - 2 사전ADT를 이용한 선형탐색과 이진탐색 - 2 https://man-25-1.tistory.com/172 [강의노트] 사전ADT를 이용한 선형탐색과 이진탐.. 2021. 10. 13.
[실습] 단일연결리스트를 이용한 합병정렬(merge sort) 단일연결리스트를 이용한 합병 정렬 https://man-25-1.tistory.com/163 [강의노트] 합병정렬과 퀵정렬 - 1 합병정렬과 퀵정렬 합병정렬과 퀵정렬에 대한 강의 노트입니다. 분할통치법 합병정렬에 대해 알아보기전에 먼저 분할통치법의 개념에 대해 알아보자. 쉽게 말해서 큰 문제를 작은 문제로 나 man-25-1.tistory.com 지난 시간에 다루었던 합병정렬을 실제로 구현해보려고 한다. 간단하게 개념을 복습해보면, 합병정렬은 분할통치법으로 3단계 구성으로 구현된다. 분할 -> 재귀 -> 통치(합병) 단계로 이루어지는데 이때 합병정렬에서 가장 중요한 단계는 merge 알고리즘이다. 퀵 정렬에서는 분할 알고리즘이 핵심이고, 합병정렬은 통치 알고리즘이 핵심이었던 것을 기억하자. Alg mer.. 2021. 10. 8.