[알고리즘] 정렬(1)
·
PS
정렬은 n개의 원소를 순서대로 배열하는 것으로 프로그래밍을 할 때 많이 사용되는 알고리즘 중 하나이다. 데이터가 정렬되어 있으면 검색, 비교, 분석이 훨씬 쉬워지는 등 이점이 있다. 정렬 알고리즘에는 다양한 종류가 있으며 이번 포스트에서 대표적인 정렬 알고리즘인 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬에 대해 알아보려한다. 1. 선택 정렬 (Selection Sort) 선택 정렬은 가장 간단한 정렬 알고리즘 중 하나이다. 배열에서 최솟값을 찾아 선택하여 배열의 첫 번째 원소와 교체하고, 그 다음 최솟값을 찾아 두 번째 원소와 교체한다. 이를 배열 전체를 순회하며 수행하면 정렬된 배열이 완성된다. 배열에서 최솟값을 찾아 선택하는 과정 때문에 이름이 선택 정렬인 것 같다. 이를 파이썬 코드..
정렬
·
Language/C C++
정렬 정렬정렬이란 사용자가 원하는 순서대로 원소들을 배치하는 것이다. 정렬을 할 수 있는 자료구조에는 배열, 리스트, 그래프가 있다. 정렬은 종류에 따라 속도의 차이가 있다. 아래의 영상을 보면 각각의 정렬 알고리즘들이 정렬을 하는데 걸리는 속도를 한눈에 볼 수 있다.@동영상오늘 우리는 속도가 N^2인 정렬 알고리즘을 공부할 것이다. 먼저 버블정렬을 살펴보자. 버블정렬은 인접한 두 원소를 비교해 나가면서 가장 큰 원소를 뒤로보내는 정렬은 해나가는 정렬이다. 이 때 작업을 n-1번 반복하는데 이유는 n-1번째에는 n번째 역시 정렬되있기 때문이다.xxxxxxxxxxvoid BubbleSort(int* arr, int size){ int i, j; int temp; for( i = 0 ; i