> 웹 프론트엔드 > JS 튜토리얼 > JS에서 몇 가지 일반적인 정렬 코드 공유

JS에서 몇 가지 일반적인 정렬 코드 공유

零到壹度
풀어 주다: 2018-03-20 11:27:08
원래의
1504명이 탐색했습니다.

이 글은 주로 몇 가지 일반적인 JS 정렬 코드의 구체적인 단계와 관련 작업 기술을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

4.2.1 버블 정렬
알고리즘 소개
분석:
두 개의 인접한 요소를 비교하여 전자가 후자보다 크면 위치를 바꿉니다.
첫 번째 라운드에서는 마지막 요소가 가장 큰 요소여야 합니다.
1단계의 방법에 따라 인접한 두 요소를 비교합니다. 이때 마지막 요소가 이미 가장 크기 때문에 마지막 요소를 비교할 필요가 없습니다.

js 코드 구현

function bubble_sort(arr){
  for(var i=0;i<arr.length-1;i++){
    for(var j=0;j<arr.length-i-1;j++){
      if(arr[j]>arr[j+1]){
        var swap=arr[j];
        arr[j]=arr[j+1];
        arr[j+1]=swap;
      }
    }
  }
}
var arr=[3,1,5,7,2,4,9,6,10,8];
bubble_sort(arr);
console.log(arr);
로그인 후 복사

4.2.2 Quick sort
js 코드 구현
분석: Quick Sort는 첫 번째 정렬 단계에서 데이터가 두 부분, 한 부분으로 나누어집니다. 다른 부분의 모든 데이터는 더 작아야 합니다. 그런 다음 재귀적으로 호출하여 양쪽에서 빠른 정렬을 수행합니다.

function quick_sort(arr){
  if(arr.length<=1){
    return arr;
  }
  var pivotIndex=Math.floor(arr.length/2);
  var pivot=arr.splice(pivotIndex,1)[0];
  var left=[];
  var right=[];
  for(var i=0;i<arr.length;i++){
    if(arr[i]<pivot){
      left.push(arr[i]);
    }else{
      right.push(arr[i]);
    }
  }
  return quick_sort(left).concat([pivot],quick_sort(right));
}
var arr=[5,6,2,1,3,8,7,1,2,3,4,7];
console.log(quick_sort(arr));
로그인 후 복사

4.2.3 삽입 정렬
알고리즘 소개
분석:
정렬되었다고 볼 수 있는 첫 번째 요소부터 시작
다음 요소를 꺼내고 정렬된 요소 순서에서 뒤로 이동 앞으로 스캔
정렬된 요소가 새 요소보다 크면 요소를 다음 위치로 이동합니다.
정렬된 요소가 새 요소보다 작거나 같은 위치를 찾을 때까지 3단계를 반복합니다.
새 요소를 다음 위치
2단계 반복

js 코드 구현

function insert_sort(arr){
  var i=1,
  j,key,len=arr.length;
  for(;i<len;i++){
    var j=i;
    var key=arr[j];
    while(--j>-1){
      if(arr[j]>key){
        arr[j+1]=arr[j];
      }else{
        break;
      }
    }
    arr[j+1]=key;
  }
  return arr;
}
insert_sort([2,34,54,2,5,1,7]);
로그인 후 복사

위 내용은 JS에서 몇 가지 일반적인 정렬 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿