버블 정렬(bubble sort)

Reyna·2022년 11월 30일
0

Recursive

목록 보기
6/11

버블 정렬

버블 정렬은 두 인접한 데이터의 크기를 비교해 정렬하는 방법이다.

버블 정렬 과정
1. 비교 연산이 필요한 루프 범위 설정
2. 인접한 데이터 값을 비교
3. swap 조건에 부합하면 swap
4. 반복문이 끝날 때까지 2~3번 반복
5. 정렬 영역을 설정한다. 다음 루프에서 이 영역은 제외
6. 비교 대상이 없을 때까지 반복

만약 특정 루프의 전체 영역에서 swap이 일어나지 않았다면 바로 종료한다.

function bubbleSort(arr) {
  	let swapped;
  for (let i=0; i<arr.length; i++) {
   		swapped = false; // 바깥 반복을 돌 때마다 false로 초기화
    for (let j=0; j<arr.length;j++) {
    	if(arr[j]>arr[j+1]){ //뒤의 요소가 앞의 요소보다 작으면 
          [arr[j],arr[j+1]] = [arr[j+1],arr[j]] //swap
          swapped = true; //swap이 한 번이라도 일어났다면 true가 된다.
    	}
 
	}
    if(!swapped) return arr;
  }
  return arr; //모든 정렬이 끝난 배열 반환
}

0개의 댓글