본문 바로가기

FP

(2)
<알고리즘> 퀵정렬은 병합정렬보다 항상 좋은 선택인가 1. 소개 최근에 필자는 하스켈이라는 언어를 공부하고 있다. 함수형 프로그래밍에 대한 깊은 이해를 위해서 겉핥기를 하고 있는데, 최근 정렬과 관련하여 궁금한 점이 생겨서 이렇게 정리하게 되었다. 참고로 이 포스팅에서 하스켈에 대해 깊이 알 필요는 없으며 함수형 언어라고만 생각해도 이해하는 데에는 지장이 없다. Data.List는 리스트 정렬을 위한 sort 함수를 제공한다. 이 함수는 퀵정렬을 쓰지 않는다. 대신 병합 정렬이라는 알고리즘의 효율적인 구현을 사용한다. - WikibooksHaskell - 지금까지 공부하기로는 대부분의 언어에서 정렬 함수는 퀵정렬(Quick Sort)을 활용하고 있다고 배웠다. 심지어 같은 시간복잡도를 가지는 병합정렬에 비해 일반적으로 더 빠르며, 면접 준비에서도 그렇게 대..
< FP > 함수형 프로그래밍이란? 1. 함수형 프로그래밍(FP) * 소개 - 최근 프로그래밍 패러다임은 크게 명령형 프로그래밍과 선언형 프로그래밍으로 나뉜다. - 명령형 프로그래밍 : 어떻게 할 것인지를 설명하는 방식으로 절차지향 프로그래밍과 객체지향 프로그래밍이 있다. - 선언형 프로그래밍 : 무엇을 할 것인지를 설명하는 방식으로 함수를 조합하여 SW를 만드는 함수형 프로그래밍이 있다. - 함수형 프로그래밍은 자료처리를 수학적 함수의 계산으로 표현하려 한다. f(x) 와 같은 것을 생각하면 좋겠다. * 의미 - 함수형 프로그래밍은 거의 모든 것을 순수함수로 나누어 문제를 해결하려한다. 이를 통해 가독성을 높이고, 유지보수를 용이하게 한다. - 함수형 프로그래밍의 가장 큰 특징은 순수함수, 1급함수, 불변성, 참조 투명성이다. 이들은 아..