버블 정렬

heejung·2022년 1월 17일
0

N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요.
정렬하는 방법은 버블정렬입니다.

▣ 입력설명
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다.
각 자연수는 정수형 범위 안에 있습니다.

▣ 출력설명
오름차순으로 정렬된 수열을 출력합니다.

▣ 입력예제 1
6
13 5 11 7 23 15

▣ 출력예제 1
5 7 11 13 15 23

문제 풀이

버블정렬

옆에 있는 데이터와 비교하여 더 작은 값을 앞으로 보내는 정렬이다.

  1. 2중 for문을 돌린다.
    1-1. i는 배열의 길이만큼
    1-2. i=0일 때 j=4까지, i=1일 때 j=3까지 돌면 된다.
    즉, j는 배열길이-i-2까지만 돌면 되므로 j<=arr.length-i-2 or j<arr.length-i-1
  2. j를 돌면서 현재 값이 다음 값보다 크면 자리를 바꿔준다.
function solution(array) {
  let arr = array;
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr.length - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}
let array = [13, 5, 11, 7, 23, 15];
console.log(solution(array));
profile
프론트엔드 공부 기록

0개의 댓글

Powered by GraphCDN, the GraphQL CDN