본문 바로가기

알고리즘3

거듭제곱 빠르게 계산하기 Using loop unsigned long long pow(unsigned long long base, int exp) { long long ans = base; for (int i = 1; i < exp; ++i) { ans *= base; } return ans; } 하지만 xnx^nxn에서 nnn이 굉장히 커졌다고 생각했을 때는 이 방법은 굉장히 느리다. Using Recursive Function unsigned long long pow(unsigned long long base, int exp) { if (exp == 0) return 1; if (exp & 1) return base * pow(base * base, (exp - 1) / 2); else return pow(base * bas.. 2018. 5. 7.
선형 구조의 탐색 선형 구조의 탐색 이번 글은 선형 구조란 무엇이고 선형 구조 속에서 탐색하는 대표적인 방법 2가지를 설명한다. 선형 구조란? 선형 구조란 프로그래밍 언어를 배울 때 배우는 배열, 연결 리스트 같은 말 그대로 선 같이 생긴 데이터 구조를 선형 구조라고 한다. 반대로 비선형 구조는 트리, 그래프 등이 있다. [배열] - 대표적인 선형 구조 [연결 리스트] - 얘도 선형 구조다. 선형 탐색 선형 탐색에는 대표적으로 전체 탐색과 이분 탐색(이진 탐색)이 있다. 전체 탐색은 말 그대로 전체를 순환해서 어떠한 값을 찾는 것을 말하고 이분 탐색은 정렬된 선형 구조에서 부분적으로만 탐색을 해서 값을 찾는 부분 탐색을 말한다. 구체적인 예시와 설명을 보면서 설명하면 좋을 것 같다. 전체 탐색 전체 탐색은 전체를 순환하기.. 2018. 5. 5.
[알고리즘] 링크드 리스트에 대해 알고가야 할 것.. 의견 나눠주세요 이 글은 '뇌를 자극하는 알고리즘 - 박상현 저', 이것만은 알고 갑시다에서 나온 내용입니다. (문제가 된다면 바로 내리겠습니다.) 1. 링크드 리스트와 배열의 성능을 다음 세 가지 연산에 관해 비교하여 설명하세요. 삽입 삭제탐색- 링크드 리스트가 삽입/삭제 연산에서 보자면 배열보다 더 빠르다는 것에서는 장점이지만 역으로 특정 위치에 있는 노드를 찾는 것은 배열에 비해 느리다고 할 수 있다... 2. 환형 링크드 리스트의 장점은 헤더 노드를 이용하여 테일 노드의 위치를 바로 파악할 수 있다는 것입니다. 그럼 링크드 리스트나 더블 링크드 리스트에서 환형 링크드 리스트에서처럼 바로 테일 노드의 위치를 알아내게 할 수는 없을까요? 그 방법을 생각해보고 설명하세요. - (아직 생각이 안 떠오르니... 좋은 생각.. 2017. 9. 30.