데이터가 여러 개 모였을 때, 그것을 정렬하는 알고리즘에 대해 알아보자.
정렬하는 알고리즘에서 우리가 우선적으로 생각해야하는 것은 정렬하는데 걸리는 속도와 복잡도이다.
쉽게 말해, 알고리즘은 데이터 전체에 간결한 규칙을 적용해 정렬하는데, 얼마나 걸리는지와 그 규칙이 얼마나 복잡한지에 대해 알아야 한다.
얼마나 걸리는지에 대한 부분은 다시 두 가지로 나눌 수 있다. 정렬하는데 걸리는 최대 횟수과 최소 횟수. 최대 횟수를 Big O라고 표현하고, 최소 횟수를 Big-Omega라고 표한다.
1. selection sort
int main(void) {
int temp, minIndex = 0;
for (int i = 0 ; i < n-1 ; i++) {
for (int j = i+1 ; j < n ; j++){
if ( arr[minIndex] > arr[j]){
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex] ;
arr[minIndex] = temp ;
}
}
2. bubble sort
------진행중----
'NEWCONCEPTS' 카테고리의 다른 글
classification with localization (one object per image) (0) | 2020.06.18 |
---|---|
벡터 유사도 구하기 (0) | 2020.03.30 |
A = CR (columns) X(Rows) (0) | 2020.02.26 |
Maximum Likelihood Estimation (최대 우도 추정법) (0) | 2020.02.18 |
자유도: degree of freedom (0) | 2020.02.10 |