본문 바로가기
Skill Stacks/Javascript

Udemy - Javascript - 정렬

by JayAlex07 2023. 1. 23.

Udemy - Javascript - 정렬

 

정렬이란?

데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다

  • 정렬을 하는 방법은 다양하다.
  • 정렬하는 방법마다, 정렬을 하는 시간은 다르다

 

자바스크립트 기본 내장 정렬

 

.sort()는 기본적으로 string 기준으로 정렬을 한다

function numberCompare(num1, num2) {
    return num1 - num2;
}
array.sort(numberCompare)
  • num1 - num2를 해서 값이 음수가 나오면 num1은 num2보다 앞에 와야 한다 (더 숫자가 작다는 것)
    • 양수가 나오면 num1은 num2 보다 커서 뒤에 나와야 한다
  • num2 - num1 을 하게 되면 내림차순으로 계산이 된다

 

버블 정렬

연속되는 2 숫자들을 비교해서, 더 큰 수가 앞에 있으면, 뒤에 있는 수와 바꾸는 것

  • 이렇게 하면, 제일 큰 수가 제일 뒤로 가게 된다

function bubbleSort(arr) {

    // i는 몇 번을 비교하는지 나타내는 숫자이다
    // 3번 -> 2번 -> 1번을 비교하는 것
    for (var i = arr.length; i > 0; i --) {
        var noSwaps = true;
        for (var j = 0; j < i - 1; j ++) {
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                noSwaps = false;
            } 
        }
        if(noSwaps) break;
    }
    return arr;
}

bubbleSort([37, 45, 29, 8])
  • noSwaps를 사용해서, 2번째 for문에서, 숫자를 한번도 안 바꿨으면, function을 끝낸다
    • 숫자를 한번도 안 바꿨다는 것은, 이미 정렬이 되었다는 것이다

'Skill Stacks > Javascript' 카테고리의 다른 글

Udemy - Javascript - 삽입 정렬  (0) 2023.01.25
Udemy - Javascript - 선택 정렬  (0) 2023.01.24
Udemy - Javascript - 탐색  (0) 2023.01.19
Udemy - Javascript - 재귀 문제풀이  (0) 2023.01.11
Udemy - Javascript - 재귀  (0) 2023.01.10