버블정렬
특징: 구현은 가장 쉬움. 하지만 비효율적.
옆에 있는 것끼리 비교해서 큰 걸 뒤로 보내는 방식.
가장 큰 숫자가 점점 "거품처럼" 위로 올라감.
// 키 순서대로 정렬
#include <stdio.h>
#include <string.h>
void swap(char* a, char* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main ()
{
char str[] = "winapi";
int len = strlen(str); // 6
printf("정렬 전 문자열 : %s\n", str);
for(int i = 0; i < len - 1; i++){
for(int j = 0; j < len - i ; j++)
{
if (str[j] > str[j + 1]) {
// swap
swap(&str[j], &str[j+1]);
}
}
printf("%d Step: %s\n", i + 1, str);
}
// 정렬 후 aiinpw
printf("정렬 후 문자열 : %s", str);
return 0;
}
arr = [8, 4, 6, 2, 9, 1]
print('정렬 전 문자열:', arr)
###정렬
size = len(arr)
for i in range(size - 1):
for j in range(size - i - 1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
print('정렬 후 문자열:', arr)
문제: 학생 키 순서대로 정렬하기
/*
아래의 입력값을 입력 받는다.
입력값 : 143 134 137 132 140 134
오름차순으로 버블 정렬
*/
#include <iostream>
using namespace std;
void Swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int getArr[6] = {0, 0, 0, 0, 0, 0};
int size = sizeof(getArr) / sizeof(int);
cout << size << endl;
cout << "정수 6개를 입력하세요." << endl;
for(int i = 0; i < size; i++) {
cin >> getArr[i];
}
for(int i = 0; i < size - 1; i++) {
for(int j = 0; j < size - i - 1; j++) {
if(getArr[j] > getArr[j+1]) {
Swap(&getArr[j], &getArr[j+1]);
}
}
cout << i + 1 << endl;
for(int j = 0; j < size; j++) {
cout << getArr[j] << ", ";
}
cout << endl;
}
}
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout,
})
let arr = ['N', 'N', 'N', 'N', 'N', 'N'];
let size = arr.length;
const Swap = function(arr, i, j) {
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
rl.question('input 6 number use space between number : ', (data) => {
arr = data.split(' ').map(Number);
for(let i = 0; i < size; i++) {
for(let j = 0; j < size - i; j++) {
if(arr[j] > arr[j+1]) {
Swap(arr, j, j+1)
}
}
console.log(arr)
}
rl.close();
})
# 버블 정렬 파이썬 구현
arr = list(map(int, input('정수 6개 입력: ').split()))
size = len(arr)
for i in range(size - 1):
for j in range(size - i - 1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
print(arr)