백준 2750번 수 정렬하기 (거품정렬) - Node.js

프동프동·2022년 6월 9일
0

알고리즘 - Node.js

목록 보기
31/116
post-thumbnail

수 정렬하기

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

5
5
2
3
4
1

예제 출력 1

1
2
3
4
5

해결 방법

  1. 시간 복잡도가 O(N^2)인 정렬 알고리즘으로 풀 수 있다길래 연습 해볼겸 거품정렬을 이용하여 풀어보았습니다.

거품 정렬은 O(N^2)의 시간복잡도를 가집니다.
Worst : O(N^2)
Average : O(N^2)
Best : O(N)

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

let N = Number(input.shift());

let numberArray = input.map(Number);
function bubbleSort(numberArray, N) {
  let temp;
  for (let i = 0; i < N - 1; i++) {
    for (let j = 0; j < N - i - 1; j++) {
      if (numberArray[j] > numberArray[j + 1]) {
        temp = numberArray[j];
        numberArray[j] = numberArray[j + 1];
        numberArray[j + 1] = temp;
      }
    }
  }
  return numberArray;
}

let sortedNumberArray = bubbleSort(numberArray, N);
for (index of sortedNumberArray) {
  console.log(index);
}
profile
좋은 개발자가 되고싶은

0개의 댓글