본문 바로가기
Programming/C

[C] 버블 정렬과 선택 정렬

by graygreat 2017. 5. 13.
728x90
반응형


버블 정렬이란?


두 인접한 원소를 검사하여 정렬하는 방법

>> 두 수를 비교해서 큰 수를 뒤로 보내는 알고리즘


※ 시간 복잡도가 O(n^2)으로 상당히 느리지만, 코드가 단수하기 때문에 자주 사용


for(i = 0; i < 5; i++){
    for(j = 0; j < 4; j++){
        if(arr[j] > arr[j + 1]){
            temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] =temp;
        }   
    }   
}   




선택 정렬이란?


정렬되지 않은 전체 자료 중에서 해당 위치에 맞는 자료를 선택하여 위치를 교환하는 정렬 방식

>> 제일 작은 값을 찾아 맨 앞의 요소와 교체하는 알고리즘


※ 시간 복잡도가 O(n^2)으로 상당히 느리고, 안정성을 만족하지 않음.


for(i = 0; i < num - 1; i++){
    min = i;
    for(j = i + 1; j < num ; j++){
        if(arr[j] < arr[min])
            min = j;
    }   
    temp = arr[min];
    arr[min] = arr[i];
    arr[i] = temp;
}   


https://visualgo.net/en/sorting     <-- 참고하기


간단하게 정리해보았다.. 구글에 정리가 잘된 블로그가 많으니 구글링하시도록..

반응형

'Programming > C' 카테고리의 다른 글

[C] <BAEKJOON - 1003번> 피보나치 함수  (0) 2017.06.19
[C] text file 정렬  (0) 2017.05.13
[C] 모래시계, 나비 프로그램 만들기  (0) 2017.04.19
[C] 포켓몬 연습 문제 2  (0) 2017.04.19
[C] 포켓몬 연습 문제 1  (0) 2017.04.19

댓글