버블 정렬

- 바로 옆에 있는 값과 비교하면서 비교할 때마다 값을 스위칭하면서 이동

- 선택 정렬과 시간 복잡도는 같지만 실제 수행시간이 가장 느림
   => 버블 정렬 : 매번 비교할 때마다 값을 스위칭
   => 선택 정렬 : 전체 원소를 비교해서 최솟값을 찾은 후 가장 마지막에만 값을 스위칭

 

시간 복잡도

- O(N^2)

 

#include<stdio.h>
#include<iostream>

int main(){
  int data[] = {1,5,9,8,2,5,6,3,7,10};
  int i,j;

  for(i = 0; i < 10; i++){
    for(j = 0; j < 9 - i; j++){ //인덱스를 넘어가지 않도록 마지막 인덱스 전까지만 돔
      if(data[j] > data[j+1]) std::swap(data[j],data[j+1]);
    }
  }

  for(i=0;i<10;i++){
    printf("%d ",data[i]);
  }
}

 

'알고리즘' 카테고리의 다른 글

힙 정렬 ( Heap sort )  (0) 2022.02.11
C++ STL sort() 함수 다루기  (0) 2022.02.10
병합 정렬 ( Merge sort )  (0) 2022.02.09
삽입 정렬(insertion sort)  (0) 2022.02.08
퀵정렬(Quick Sort)  (0) 2022.02.07

+ Recent posts