버블 정렬 (bubble sort)
인접한 2개의 요소를 계속해서 비교하며 크기의 순서에 맞춰 서로 자리 바꿈 해주는 정렬
버블 정렬의 과정
![](https://velog.velcdn.com/cloudflare/jkl1545/d57a6d08-9d37-4ed2-88e5-8f6981c6bbd0/code.png)
✅ 오름차순을 기준으로 정렬한다고 가정했을 경우 ✅
- 2중 반복문을 통해 처음부터 끝까지 전부 비교한다.
- i의 반복문이 종료되면 배열의 가장 오른쪽에는 배열의 요소 중 가장 큰 수가 차지한다.
2-1. 그렇기 때문에 j는 배열의 길이의 - 1 - i 만큼만 반복하면된다. -> array.length - 1 - i
- 자신과 자신 이후의 요소들을 비교대상으로 정한다. -> j, j + 1
- 비교 조건이 true인 경우에는 temp 변수에 array[j]의 값을 저장한 후 array[j + 1]의 값을 할당한다.
- array[j + 1]의 자리에는 temp에 저장했던 array[j]의 값을 할당한다.
❗️for(let i = 0; i < array.length - 1; i++) 까지만 반복문을 도는 이유
➜ i가 배열의 길이만큼 도달했을 경우에는 다음 요소가 없기 때문에 비교대상이 없다.
![](https://velog.velcdn.com/cloudflare/jkl1545/5131a3a4-8b30-4889-80ee-1e71f2b4e9e5/code.png)
틀린 부분이 있거나 보충해야 할 내용이 있다면 댓글이나 DM(sungstonemin)으로 알려주시면 감사하겠습니다😄