NEWCONCEPTS
알고리즘
silvercityz
2020. 2. 26. 18:36
데이터가 여러 개 모였을 때, 그것을 정렬하는 알고리즘에 대해 알아보자.
정렬하는 알고리즘에서 우리가 우선적으로 생각해야하는 것은 정렬하는데 걸리는 속도와 복잡도이다.
쉽게 말해, 알고리즘은 데이터 전체에 간결한 규칙을 적용해 정렬하는데, 얼마나 걸리는지와 그 규칙이 얼마나 복잡한지에 대해 알아야 한다.
얼마나 걸리는지에 대한 부분은 다시 두 가지로 나눌 수 있다. 정렬하는데 걸리는 최대 횟수과 최소 횟수. 최대 횟수를 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
------진행중----