본문 바로가기

기초 알고리즘 (C언어)3

선택 정렬 알고리즘. 선택 정렬(selection sort)이란 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다. 1.주어진 리스트 중에 최소값을 찾는다. 2. 그 값을 맨 앞에 위치한 값과 교체한다(PASS) 3. 맨 처음 위치를 뺸 나머지 리스트를 같은 방법으로 교체한다. 비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으 로 정렬하는 데에는 O(n2) 만큼의 시간이 걸린다. 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있다. 선택 정렬(selection sort) 알고리즘의 원리 배열에 9, 6, 7, 3, 5가 저장되어 있다고 가정하고 자료를 오름차순으로 정렬해 보자. 1회전: 첫 번째 자료 9를 두 번째 자료.. 2019. 10. 1.
삽입정렬 알고리즘 삽입 정렬(insertion sort)이란 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 선택정렬이나 버블정렬과 같은 같은 O(n2) 알고리즘에 비교하여 빠르며, 안정 정렬이고 in-place 알고리즘이다. https://www.youtube.com/watch?v=ROalU379l3U&list=PLiKm3vqmZQR3S_IJ4t_baaa-wQXmbHt2D 여기 링크에 들어가 영상을 보면 보다 확실히 삽입정렬 알고리즘 개념에 대해서 확실히 알 것 이다. C언어 소스코드 2019. 10. 1.
버블정렬 알고리즘. 버블 정렬(bubble sort) 알고리즘이란? Bubble Sort는 인접한 두 수를 비교하여 큰 수를 뒤로 보내는 간단한 정렬 알고리즘으로 의 시간복잡도를 갖습니다. 다른 정렬 알고리즘에 비해 속도가 상당히 느린 편이지만, 코드가 단순하기 때문에 자주 사용된다. 일반적으로 가장 빠른 정렬 알고리즘은 Quick Sort로 시간 복잡도 입니다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 Bubble Sort라는 이름을 가지게 되었다고 한다. 버블 정렬(bubble sort) 알고리즘 원리 버블 정렬은 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬한다... 2019. 10. 1.