반응형
- 안녕하세요! BlockDMask 입니다.
- 오늘 푼문제는 버블정렬(Bubble Sort)과 삽입정렬(Insertion Sort)를 복습하는 마음으로 푼 문제였습니다.
- 버블정렬과 삽입정렬 두 방법 으로 문제를 풀었습니다.
0) 제목
- BOJ 2577 번 문제 " 수 정렬하기 " 입니다.
- C++ 을 이용해서 풀었습니다.
1) 문제 설명
- 숫자 n 이 입력되면
- 그 n 개의 갯수만큼 숫자를 입력 받습니다.
- 그 숫자들을 오름차순 순으로 정렬하여 출력합니다.
2) 풀이과정
- bubble sort 와 insertion sort 두가지 다 이용해서 풀어보았습니다.
3) 함수설명
- null
4) 코드
-> Bubble Sort
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
31
32
33
34
35
36
|
#include<iostream>
using namespace std;
int main(void) {
int n;
cin >> n;
int * arr = new int[n];
for(int i=0; i< n; i++){
cin >> arr[i];
}
//bubble sort.
int tmp;
for(int i=0 ; i<n; i++){
for(int j=0 ; j < n-1-i ; j++){
//swap
if(arr[j] > arr[j+1]) {
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
for(int i=0; i<n; i++){
cout << arr[i] << endl;
}
delete []arr;
return 0;
}
|
cs |
-> Insertion Sort
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
31
32
33
34
35
36
37
|
#include<iostream>
using namespace std;
int main(void) {
int n;
cin >> n;
int * arr = new int[n];
for(int i=0; i< n; i++){
cin >> arr[i];
}
//insertion sort
int key;
for(int i=1; i<n ;i++){
int j;
key = arr[i];
for(j= i-1 ; j>=0 ; j--){
if(arr[j] > key){
arr[j+1] = arr[j];
}else{
break;
}
}
arr[j+1] = key;
}
//print
for(int i=0; i<n; i++){
cout << arr[i] << endl;
}
delete []arr;
return 0;
}
|
cs |
5) 인증
버블정렬 결과
삽입정렬 결과
출처 :
반응형
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[백준 1475] 방 번호 (0) | 2017.08.01 |
---|---|
[백준 10828] 스택 (C, C++ stack) (4) | 2017.08.01 |
[백준 11050] 이항계수 1 (반복, 재귀) (0) | 2017.07.31 |
[백준 1157] 단어 공부 (map) (1) | 2017.07.29 |
[백준 1152] 단어의 개수 (strtok) (2) | 2017.07.27 |
[백준 2577] 숫자의 개수 (0) | 2017.07.26 |
[백준 11720] 숫자의 합 (아스키코드) (0) | 2017.07.25 |
[C++ vector] Vector-Erase (0) | 2017.07.24 |