버블정렬이란?


버블 정렬은 첫 번째 자료와 두번째 자료를, 두번째 자료와 세 번째 자료를 ... 이런 식으로 마지막-1 번째 자료와 마지막 자료를 비교하면서 교환하여 자료를 정렬하는 것이다.


1회전 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하게되고, 2회전에서는 맨 끝에 있는 자료는 정렬에서 제외되고, 끝에서 두번째 자료가 두번째로 큰 값이 된다.



#include <iostream>

using namespace std;


int main() {

    int n, i, j ,tmp;

    int data[10];

    for ( n=0; n<=9; n++ ){

        cin >> data[n];

    }

    for ( i = 1; i <= 9; i++) {

        for ( j = 0; j <= 9-i; j ++) {

            if ( data[j]> data[j+1]) {

                tmp = data[j];

                data[j] = data[j+1];

                data[j+1] = tmp;

            }

        }

    }

    for (int x =0; x<=9;x++) {

        cout << data[x] << " ";

    }


    return 0;

}




심화 -> 중간에 종료하기


특정 회전에서의 자료 교환 여부를 검사하고 더이상 교환이 없을때 완료된 것으로 파악하고 출력하기


#include <iostream>

using namespace std;


int main() {

    int n, i, j ,tmp , sw, cnt;

    int data[10];

    for ( n=0; n<=9; n++ ){

        cin >> data[n];

    }

    cnt = 0;

    for ( i = 1; i <= 9; i++) {

        sw = 0;

        for ( j = 0; j <= 9-i; j ++) {

            if ( data[j]> data[j+1]) {

                tmp = data[j];

                data[j] = data[j+1];

                data[j+1] = tmp;

                cnt++;

                sw = 1;

            }

        }

        if ( sw ==0) {

            break;

        }

    }

    for (int x =0; x<=9;x++) {

        cout << data[x] << " ";

    }


    return 0;

}


'algorithm > [C++] 자료구조' 카테고리의 다른 글

선택정렬  (0) 2018.05.31

선택정렬이란?

선택 정렬은 첫 번째 자료를 두 번째 자료부터 마지막 자료까지 차례대로 비교하여 가장 작은 값을 찾아 첫 번재에 놓고, 두 번째 자료를 세 번째 자료부터 마지막 자료까지와 차례대로 비교하여 그 중 가장 작은 값을 찾아 두 번째 위치에 놓는 과정을 반복하며 정렬을 수행하는 것이다.



#include <iostream>

using namespace std;


int main() {

    int m, i, j, k, tmp;

    int data[10];

    for (m = 0; m < 10; m++){

        cin >> data[m];

    }

    for (i = 0; i <= 8; i++){

        for(j = i+1; j <= 9; j++){

            if(data[i]> data[j]){

                tmp = data[i];

                data[i] = data[j];

                data[j] = tmp;

            }

        }

    }

    for( k = 0; k < 10; k++){

        cout << data[k]<< " ";

    }


    return 0;

}



'algorithm > [C++] 자료구조' 카테고리의 다른 글

버블정렬  (0) 2018.05.31

+ Recent posts