이 기사에서는 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;}
위 내용은 이 글의 전부입니다. 잘 모르신다면 양면을 직접 구현하시면 쉽게 마스터하실 수 있습니다
관련 추천 :
위 내용은 JavaScript의 Hill 정렬에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!