Tang's
탕로그
Tang's
전체 방문자
오늘
어제
  • 분류 전체보기 (35)
    • FRONTEND (26)
      • JavaScript (6)
      • Algorithm (2)
      • CSS (2)
      • React (5)
      • Next.js (1)
      • 기타 (4)
      • 임시 (1)
      • 백만가지 ERROR (4)
      • 면접준비 (0)
      • project (1)
    • BACKEND (2)
      • Node.js (1)
      • MongoDB (1)
    • TODAY (7)
      • 생각 (1)
      • 회고 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 신입 프론트엔드 개발자
  • ec2 권한 설정
  • docker-compose ci/cd
  • yarn create next-app
  • server action
  • React
  • jest nextjs typescript
  • 프론트엔드 면접질문
  • props와 state 차이점
  • display:flex
  • nginx-proxy-manager
  • 폴더 권한 설정
  • nextjs metadata
  • linux 폴더 권한
  • 신입 프론트엔드 개발자 회고
  • 프론트엔드 개발자 회고
  • Turbopack
  • nextjs ci/cd
  • modal 제어
  • jest 초기 세팅
  • 회고
  • 개발자 회고
  • partial prerendering
  • Nextjs docker
  • jest recoil
  • jest react-query
  • jest
  • Next.js 14
  • 폴더 권한 확인
  • 폴더 권한 변경

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Tang's

탕로그

FRONTEND/JavaScript

[JS] 버블정렬 알고리즘 오름차순, 내림차순

2022. 8. 25. 20:27

1. 오름차순 정렬

//오름차순

const arr = [3, 5, 2, 6];

function bubble(arr) {
  for(let i=0; i<arr.length; i++) {
    for(let j=0; j<arr.length -i -1; j++) {
      if(arr[j] > arr[j+1]) {
        const temp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = temp;
      }
    }
  }
  return arr;
}
      
bubble(arr) // [2, 3, 5, 6]

배열의 arr[j] 번째와 arr[j+1] 번째를 비교해가며 최종적으로는 가장 끝에 가장 큰 수가 위치한다.

한 번 순회한 다음에는 가장 끝까지 반복할 필요가 없으므로 j<arr.length -i 로 필요없는 반복을 제거한다.

 

//내림차순

const arr = [3, 5, 2, 6];

function bubble(arr) {
  for(let i=0; i<arr.length; i++) {
    for(let j=0; j<arr.length -i -1; j++) {
      if(arr[j] < arr[j+1]) {
        const temp = arr[j+1];
        arr[j+1] = arr[j];
        arr[j] = temp;
      }
    }
  }
  return arr;
}
      
bubble(arr) // [6, 5, 3, 2]

마찬가지로 내림차순은 if문의 조건만 반대로 바꿔주면 된다.

 

'FRONTEND > JavaScript' 카테고리의 다른 글

[JS] FormData() 생성자에 데이터 추가하는 법  (0) 2022.08.31
[JS] Map()의 메서드 종류  (0) 2022.08.29
[JS] arr.forEach() 와 arr.map()의 차이점!  (0) 2022.08.27
[JS] 문자열을 배열로 바꾸고 공백 제거하기 (+배열 공백제거)  (0) 2022.08.23
[JS] 요소.getBoundingClientRect() 메서드 속성  (0) 2022.08.21
    'FRONTEND/JavaScript' 카테고리의 다른 글
    • [JS] Map()의 메서드 종류
    • [JS] arr.forEach() 와 arr.map()의 차이점!
    • [JS] 문자열을 배열로 바꾸고 공백 제거하기 (+배열 공백제거)
    • [JS] 요소.getBoundingClientRect() 메서드 속성
    Tang's
    Tang's
    탕탕한 탕진의 기술 블로그!

    티스토리툴바