본문 바로가기

알고리즘3

[자료구조] 해시테이블(Hash Table) 정리 및 예제 해당 포스팅은 'Hello Coding 그림으로 개념을 이해하는 알고리즘' 도서를 개인공부하면서 정리한 내용입니다. 소스코드는 도서, 깃허브, 출판사 제공파일을 참고하였습니다. 깃허브 링크는 하단에 남겨두었습니다. | 해시 테이블이란? 해시 테이블은 해시함수와 배열 이용해 나타낸 자료구조 입니다. (1차원)배열은 배열 한 원소에 한 개의 값만 저장할 수 있지만, 해시 테이블의 배열은 한 배열에 여러 개의 원소를 저장할 수 있도록 연결리스트(linked list)를 이용합니다. 즉, 배열과 연결리스트로 구성된 복합 자료구조입니다. 파이썬에서의 해시테이블 역할: 딕셔너리 파이썬에서 해시테이블은 딕셔너리로 표현할 수 있습니다. 딕셔너리는 키(key)와 값(value)로 구성된 자료구조 입니다. 이때 해시 함수.. 2022. 1. 9.
[알고리즘] 퀵 정렬(Quick Sort) 정리 및 예제 해당 포스팅은 'Hello Coding 그림으로 개념을 이해하는 알고리즘' 도서를 개인공부하면서 정리한 내용입니다. 소스코드는 도서, 깃허브, 출판사 제공파일을 참고하였습니다. 깃허브 링크는 하단에 남겨두었습니다. | 문제 배열을 퀵 정렬을 이용하여 오름차순으로 정렬하라. | 해결 1.pivot 기준값 설정 2.두개의 하위 배열로 분할 -배열을 기준 원소보다 작은 원소의 배열, 기준원소보다 큰 원소의 배열 3.하위 배열을 재귀적으로 퀵정렬 함수 호출 | 퀵정렬에 필요한 개념 및 주의점 1.리스트 병합 +, extend(), sum() 중 여기서는 +를 이용한 병합을 진행. return quicksort(less) + [pivot] + quicksort(greater) 이때 pivot은 pivot = ar.. 2022. 1. 6.
[알고리즘] 선택정렬 (Selection Sort) 정리 및 예제 | 문제 배열을 작은 정수에서 큰 정수 순서로 정렬하는 코드입니다. | 해결 방법 1. findSmallest(): 배열에서 가장 작은 원소를 찾는 함수를 구현한다. (여기서 정렬하지 않는다.) 2. selectionSort(): 새 배열에 가장 작은 원소를 추가하는 정렬 함수를 구현한다. (여기서 정렬을 한다.) 주의할 점 findSmallest() 메소드 for i in range(1, len(arr)): 범위 1~ (arr크기-1) (1)range()의 매개변수에는 정수 타입만 올 수 있다. -range(arr) 타입이 맞지 않아 TypeError발생 -TypeError: 'list' object cannot be interpreted as an integer (2)(1, len(arr))에서 1로.. 2022. 1. 5.