본문 바로가기

알고리즘

(2)
[C언어] 정렬 알고리즘 (삽입정렬, 퀵정렬, 합병정렬) 정렬 알고리즘 중 삽입정렬, 퀵정렬, 합병정렬에 대해 알아보자. 1. 삽입정렬(Insertion sort) 삽입정렬은 정렬된 수와 정렬할 수를 나누어서 모든 수가 정렬된 수가 될 때까지 과정을 반복하는 알고리즘이다. 삽입정렬의 과정은 다음과 같다. 1. 정렬된 수와 정렬할 수로 섹션을 나눈다. (처음에는 정렬된 수가 없기 때문에 가장 정렬할 수의 가장 첫 번째 수를 둔다.) 2. 정렬할 수를 들어 올려서 (실제로 들어 올리는 건 아니지만 그렇다고 생각하고) 정렬된 수와 비교한다. 정렬된 수보다 작으면 정렬된 수를 한 칸 뒤로 보내고 그 자리에 들어 올린 수를 둔다. 비교가 끝나면 그 수는 정렬된 수에 포함된다. 3. 모든 수가 정렬된 수가 될 때까지 위 과정을 반복한다. 참고 유튜브 링크: https:/..
[C언어] 탐색 알고리즘 (순차탐색, 이진탐색) 알고리즘이란? 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것. 한마디로 문제 해결방법을 공식화한 형태라고 할 수 있다. 탐색 알고리즘에 대해 알아보자. 1. 순차탐색 배열의 순서대로 확인하면서 값을 찾는 방법이다. 매우 단순한 탐색방법이며 웬만하면 이 방법을 사용한다고 한다. 그러나 찾는 값이 맨 끝에 있다면 모든 값을 다 비교해야 하기 때문에 비효율적이다. #include int main(void) { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int key = 8; int index; for (int i = 0; i < 10; i++) { if (key == arr[i]) index = i; } printf("%d는 a..