>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 Hill 정렬에 대한 자세한 설명

JavaScript의 Hill 정렬에 대한 자세한 설명

韦小宝
韦小宝원래의
2018-03-14 14:08:451850검색

이 기사에서는 JavaScript의 Hill 정렬에 대해 설명합니다. JavaScript의 Hill 정렬에 관심이 있다면 이 기사를 살펴보겠습니다. !

JavaScript의 Hill 정렬

Hill 정렬은 삽입 정렬을 보다 효율적으로 구현한 것입니다. 더 멀리 있는 요소를 먼저 비교한다는 점에서 삽입 정렬과 다릅니다. Hill 정렬의 핵심은 간격 순서 설정에 있습니다. 간격 순서는 미리 설정하거나 동적으로 정의할 수 있습니다. 간격 시퀀스를 동적으로 정의하는 알고리즘은 "Algorithms(4th Edition)"의 공동 저자인 Robert Sedgewick이 제안한 것입니다. 여기서는 이 방법을 사용했습니다.

JavaScript 코드 구현

function shellSort(arr) {  
    var len = arr.length,  
        temp,  
        gap = 1;  
    while(gap < len/3) {          //动态定义间隔序列  
        gap =gap*3+1;  
    }  
    for (gap; gap > 0; gap = Math.floor(gap/3)) {  
        for (var i = gap; i < len; i++) {  
            temp = arr[i];  
            for (var j = i-gap; j >= 0 && arr[j] > temp; j-=gap) {  
                arr[j+gap] = arr[j];  
            }  
            arr[j+gap] = temp;  
        }  
    }  
    return arr;}

위 내용은 이 글의 전부입니다. 잘 모르신다면 양면을 직접 구현하시면 쉽게 마스터하실 수 있습니다

관련 추천 :

JS Hill 정렬 및 퀵 정렬 구현 방법

위 내용은 JavaScript의 Hill 정렬에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.