병합 정렬(Merge Sort) 개yo 앞선 포스팅에서는 앞도적으로 빠른 속도를 자랑하는 퀵 정렬에 대해 알아보았다. 하지만 이런 퀵 정렬 또한 최악의 상황 (거의 정렬이 되어있는 데이터)에서의 시간복잡도가 O(N * log N)을 보장하지 못한다는 단점을 가지고 있었다. 이런 단점을 보완하여 어떠한 경우에도 시간복잡도O(N * log N)을 ...
정렬 알고리즘(계수 정렬)
계수 정렬 (Counting Sort) 개yo 이번 포스팅에선 계수정렬 (Counting Sort)에 대해 알아볼 것이다. 계수 정렬은 지난 정렬 알고리즘과 다르게 특정 조건에서 매우 빠르게 작동하는 정렬 알고리즘이다. 앞선 정렬 알고리즘의 시간 복잡도는 대개 O(N^2), O(N * log N) 의 형태를 띄었지만 오늘 알아볼 계수정렬의 시간...
정렬 알고리즘(퀵 정렬)
퀵 정렬(Quick Sort) 개yo 앞선 포스팅에서는 선택정렬 , 버블정렬 , 삽입정렬에 대해 알아보았다. 3개의, 정렬 알고리즘의 시간 복잡도는 주어진 데이터에 따라 달라지지만 보통 O(N^2) 의 형태를 띄고 있다. 하지만 이번 포스팅에서 설명할 퀵 정렬 의 시간복잡도는 O(N^2)가 아닌 O(N * log N) 를 가지고 있다. 이런...
정렬 알고리즘(삽입 정렬)
삽입 정렬(Insertion Sort) 개yo 앞선 포스팅에서는 선택정렬 , 버블정렬 에 대해 알아보았고, 이번 포스팅에서는 삽입정렬을 구현하고 시간 복잡도를 알아 보도록 하겠다. 문제 문제 : 다음 숫자들을 오름차순으로 정렬하는 프로그램을 작성 하여라 1 10 5 8 7 6 4 3 2 9 SOL 문제를 해결하기 위해...
정렬 알고리즘(버블 정렬)
버블 정렬(Bubble Sort) 개yo 저번 포스팅에서는 선택정렬 알고리즘에 대해 알아 보았고, 이번 포스팅에서는 버블정렬 을 구현하고 시간 복잡도를 알아 보도록 하겠다. 문제 문제 : 다음 숫자들을 오름차순으로 정렬하는 프로그램을 작성 하여라 1 10 5 8 7 6 4 3 2 9 SOL 문제를 해결하기 위해 “옆...
정렬 알고리즘(선택 정렬)
개요 일반적으로 알고리즘을 공부 할 때 가장 쉽게 먼저 접하는 문제는 ‘정렬(Sort)’문제라고 할 수 있다. 본 포스팅에서는 정렬 알고리즘 중에서도 선택정렬 을 구현하고 시간 복잡도를 알아 보도록 하겠다. 문제 문제 : 다음 숫자들을 오름차순으로 정렬하는 프로그램을 작성 하여라 1 10 5 8 7 6 4 3 2 9 SO...
big(O) notation
big (O) notation 개yo 프로그래밍에 있어 가장 고려해야되는 점이 있다고 하자면, 우린 프로그램의 효율성… 즉 프로그램이 처리되는 속도와, 메모리를 사용하는 공간 정도라고 할 수 있다. 이런 속도, 공간의 정도를 비교하는 수식으로 표현하는 방식이 있는데 이것을 우린 big(O) 표기법이라고 한다. 이번 포스팅에선 big(O) 에 ...