본문 바로가기

NEWCONCEPTS

알고리즘

데이터가 여러 개 모였을 때, 그것을 정렬하는 알고리즘에 대해 알아보자.

 

정렬하는 알고리즘에서 우리가 우선적으로 생각해야하는 것은 정렬하는데 걸리는 속도와 복잡도이다. 

 

쉽게 말해, 알고리즘은 데이터 전체에 간결한 규칙을 적용해 정렬하는데, 얼마나 걸리는지와 그 규칙이 얼마나 복잡한지에 대해 알아야 한다.

 

얼마나 걸리는지에 대한 부분은 다시 두 가지로 나눌 수 있다. 정렬하는데 걸리는 최대 횟수과 최소 횟수. 최대 횟수를 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

------진행중----