https://visualgo.net/en/sorting
정렬 알고리즘은 말 그대로 특정 규칙으로 정렬을 해주는 알고리즘이다.
정렬하고자하는 데이터들이 숫자(자연수)라면, 두가지 방법으로 정렬이 가능할 것이다.
"오름차순" : 1, 2, 3, 4, 5 ,..., n
"내림차순" : n, ..., 5, 4, 3, 2, 1
먼저 오름차순으로 정렬하는 알고리즘을 생각해보자.
가장 단순하게 생각해 볼 수 있는 방법은 주어진 데이터가 배열으로 저장되어 있다고 생각할때, 왼쪽부터 두개의 값들을 골라서 1:1로 비교하면서, 제일 큰값을 오른쪽으로 보내는 방법이다.
그리고 다시 처음으로 돌아가 반복한다. 이때 중요한 점은 한번 배열끝까지 돌았을때, 주어진 배열에서 가장 큰 숫자는 이미 맨끝에 위치해있다는 사실이다. 즉 배열전체를 돌때마다 돌아야하는 범위가 오른쪽부터 1씩 줄어들어야 한다.
C로 구현
파이썬으로 구현 및 테스트