Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- DP
- priority_queue
- Sort
- 알고리즘
- DFS
- N과M
- 배열
- 우선순위큐
- C++
- vector
- stoi
- 최소공배수
- Set
- 에라토스테네스의 체
- 티스토리챌린지
- 정렬
- 문자열
- 백준
- 백트래킹
- 이분탐색
- 분할정복
- 유클리드호제법
- 그래프
- 다이나믹프로그래밍
- map
- BFS
- 프로그래머스
- 깊이우선탐색
- int
- 오블완
Archives
- Today
- Total
안녕 세상아,
[C++/정렬] 버블 정렬 본문
정렬은 숫자를 오름차순 또는 내림차순으로 정리한 것이다.
이러한 정렬 중
버블 정렬이란?
서로 인접한 두 원소를 검사하여 정렬하는 알고리즘이다.
-> 인접한 2개의 원소를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하게 된다.
(==선택정렬, 두개의 기본 개념이 비슷하다)
버블 정렬 알고리즘 구체적 개념
버블 정렬은 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, 이런 식으로 (마지막 - 1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하게 된다.
1회전을 수행하고 나면 가장 큰 원소는 맨 뒤로 이동하게 된다. 그러므로 정렬을 1회전 수행할 때마다 정렬에서 제외되는 데이터가 하나씩 늘어나게 된다.
< 버블 정렬 예시 >
#include <iostream>
using namespace std;
int main() {
int array[10]={4, 6, 7, 2, 1, 5, 9, 10, 3, 8};
int temp;
for(int i=0; i<10; i++){
for(int j=0; j<10-1-i; j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
for(int i=0; i<10; i++){
cout<<array[i]<<endl;
}
return 0;
}
버블 정렬의 장단점
- 장점: 구현하기 매우 쉬움
- 단점: 시간 복잡도가 매우 높음. 시간이 오래 걸려서 거의 사용하지 않음.
'c++ 개념' 카테고리의 다른 글
[c++/벡터] 2차원 벡터 (1) | 2024.04.07 |
---|---|
[c++/벡터] 벡터 생성, 삽입, 삭제, 정렬 (0) | 2024.04.06 |
[c++/함수] void 함수 vs 값 반환 함수 (0) | 2024.04.05 |
[c++/변환] int->char, char->int (알파벳 변환) (0) | 2024.04.05 |
[c++/조건문] switch문 사용법, 예제 (0) | 2024.04.04 |