Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩테스트
- box-sizing: border-box
- 크롬웹
- 백준 정리
- :root
- calc()
- error: ENOENT: no such file or directory
- margin 0 auto
- 라매개발자
- nav태그
- max-width
- 할만한데?
- 단계별로 풀어보기
- 생활코딩 WEB2-JavaScript
- li 태그
- 백준
- WEB2-JavaScript
- git 버전관리
- git
- 노마드 코더
- 생활코딩
- 드림코딩
- 나도코딩
- 나도코딩 파이썬
- HTML
- html 끝
- 백준 자바스크립트
- border radius
- button:focus cursor: pointer; outline: none;
- Pull
Archives
- Today
- Total
코딩응애의 개발블로그
코플릿 풀면서 알게된 점 (버블 정렬) 본문
버블정렬
옆에 있는 값과 비교해서 더 큰값을 뒤로 보냄 구현하기는 가장 쉽지만 효율성은 가장 떨어진다.
배열의 인접한 2개의 값을 선택하고 비교하는데 왼쪽이 오른쪽보다 크면 서로 자리를 바꿔줌 여기서 끝이 아니라 오른쪽으로 이동해서 아까 한 과정을 반복 아래 움짤 처럼
시간복잡도는 O(n^2) 이래서 구현이 가장 단순함에도 불구하고 거의 쓰이지 않는다.
const bubbleSort = function (arr) {
for (let i = 0; i < arr.length; i++) {
let swap; // 스왑해주기 위한 변수
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) { // 왼쪽에 있는 수가 오른쪽에 있는 수보다 크다면
swap = arr[j];
arr[j] = arr[j + 1]; // 이건 왼쪽과 오른쪽 수를 변경해준다는 의미 예를들어 10,5 라면 10이 더크니까 조건 충족하고
// 10과 5의 위치를 바꿔야 하기 때문에 일단 10이 있는 위치에 5를 넣어주고 또 반대로 5가 있는 위치에
// 10을 넣어주어야 하기 때문에
arr[j + 1] = swap; // 이렇게 해주면 10이 arr[j+1] 위치에 가게된다.
}
}
if (!swap) { // 다 정렬이 됬다면 undefined 나옴 왜냐면 두번째 for문 안에 조건을 충족하는게 없기때문에
// swap이라는 변수에 들어갈게 없어서 undefined 나오는것임 그때 break를 해서 빠져나온다
break;
}
}
console.log(arr)
};
bubbleSort([1, 10, 5])
'코드스테이츠(부트캠프)' 카테고리의 다른 글
코드스테이츠 블로깅 - Redux (0) | 2022.09.01 |
---|---|
코드스테이츠 블로깅 - UI/UX 분석 및 개선 (0) | 2022.08.25 |
코플릿 - 동적 계획법(Dynamic Programming) (0) | 2022.08.24 |
코드스테이츠 블로깅 (UI,UX) (2) | 2022.08.23 |
BrowserRouter 왜 화면이 출력이 안되는거지? (0) | 2022.08.19 |
Comments