분류 javascript

쉘 정렬을 사용하여 요소 목록을 정렬하는 JavaScript 프로그램을 작성하십시오.

컨텐츠 정보

  • 조회 922 (작성일 )

본문

설명 :

Wikipedia "Shell sort 또는 Shell의 방법에 따르면, in-place 비교 정렬이며, Exchange (버블 정렬) 또는 삽입 (정렬 정렬)을 기준으로 정렬하여 일반화 된 것으로 볼 수 있습니다. 이 방법은 서로 멀리 떨어져있는 요소 쌍을 정렬 한 다음 비교할 요소 간의 간격을 점차 축소하여 시작합니다. 아주 멀리 떨어져있는 요소로 시작하면 일부 가장 가까운 요소를 가장 가까운 가장 가까운 이웃 교환기보다 더 빨리 위치시킬 수 있습니다. "


코드 :

function shellSort(arr) {
    var increment = arr.length / 2;
    while (increment > 0) {
        for (i = increment; i < arr.length; i++) {
            var j = i;
            var temp = arr[i];
    
            while (j >= increment && arr[j-increment] > temp) {
                arr[j] = arr[j-increment];
                j = j - increment;
            }
    
            arr[j] = temp;
        }
    
        if (increment == 2) {
            increment = 1;
        } else {
            increment = parseInt(increment*5 / 11);
        }
    }
  return arr;
}

console.log(shellSort([3, 0, 2, 5, -1, 4, 1]));


결과 :

-1,0,1,2,3,4,5