JS 정렬 알고리즘 의 힐 정렬 과 빠 른 정렬 실현 방법
힐 정렬:
5,3,1 과 같은 간격 서열 을 정의 합 니 다.첫 번 째 처 리 는 모든 간격 이 5 인 요 소 를 처리 하고 다음 에는 간격 이 3 인 요 소 를 처리 합 니 다.마지막 처리 간격 은 1 인 요 소 를 처리 합 니 다.인접 요소 의 실행 표준 삽입 정렬 이다.
마지막 처 리 를 시작 할 때 대부분의 요 소 는 정확 한 위치 에 있 고 알고리즘 은 많은 요 소 를 교환 할 필요 가 없습니다.이것 은 요 소 를 삽입 하 는 것 보다 고 급 스 러 운 곳 입 니 다.
시간 복잡 도 O(n*logn)
function shellSort(){
var N=arr.length;
var h=1;
while(h<N/3){
h=3*h+1;//
}
while(h>=1){
for(var i=h; i<N; i++){
for(j=i; j>=h && arr[j]<arr[j-h]; j-=h){
swap(arr, j, j-h);
}
}
h=(h-1)/3;
}
}
function swap(array, i, j){//
var temp =array[j];
array[j]=array[i];
array[i]=temp;
}
빠 른 정렬:재 귀적 인 방식 으로 데 이 터 를 작은 요소 와 큰 요 소 를 포함 하 는 서로 다른 하위 서열 로 분해 하고 이 절 차 를 계속 반복 하 며 모든 데이터 가 질서 가 있 을 때 까지 합 니 다.
기준 치보다 작은 것 을 배열 에 넣 을 기준 치 를 선택 하 십시오.기준 치보다 큰 그룹 에 넣 으 세 요.
시간 복잡 도 O(n*logn)
function quickSort(arr){
if(arr.length==0){
return [];
}
var left=[];
var right=[];
var p=arr[0];
for(var i=1; i<arr.length; i++){
if(arr[i]<p){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return quickSort(left).concat(p,quickSort(right));
}
빠 른 정렬 은 대형 데이터 집합 에 적합 하 며,작은 데이터 집합 을 처리 할 때 오히려 성능 이 떨어진다.PS:정렬 에 관 한 프 리 젠 테 이 션 도 구 를 추천 합 니 다.참고 하 시기 바 랍 니 다.
온라인 애니메이션 프레젠테이션 삽입/선택/거품/병합/힐/빠 른 정렬 알고리즘 프로 세 스 도구:
http://tools.jb51.net/aideddesign/paixu_ys
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.