JavaScript 정렬 알고리즘 원리 및 구현 방법 예제 선택

본 고의 실례 는 자 바스 크 립 트 가 정렬 알고리즘 을 선택 하 는 원리 와 실현 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.정렬 프로필 선택
거품 정렬,정렬 삽입,정렬 선택 을 간단 한 정렬 이 라 고 합 니 다.다음은 정렬 을 선택 하 는 사상 입 니 다.
만약 에 하나의 배열 a 가 있다 고 가정 하면 우 리 는 a 반 이라는 반 이 있다 고 상상 한다.현재 반 전체 가 마음대로 한 줄 로 서 있 고 선두 의 위 치 는 a[0]이 며 배열 의 위 치 는 a[a.length-1]이다.그러나 높 고 낮은 순 서 는 질서 가 있 는 것 이 아니다.우 리 는 낮은 것 부터 높 은 줄 까지 선두 가 가장 낮 고 꼬리 가 가장 높 고 싶다.
정렬 을 선택 하 는 것 은 다음 과 같 습 니 다:
1 라운드:
(1)a[1]위치 팀 원 과 a[0]위치 팀 원 을 비교 하고 a[0]위치 팀 원 보다 작 으 면 a[1]의 위 치 를 기억 하고 a[0]팀 원 보다 작 지 않 으 면 a[0]위 치 를 기억 하 며 위 치 를 기억 하 는 팀 원 은 현재 알려 진 가장 작다.
(2)a[2]위치 팀 원 과 기록 위치 팀 원 을 비교 하고 기록 위치 팀 원 보다 작 으 면 a[2]를 기록 위치 로 바 꾸 고 기록 위치 팀 원 보다 작 지 않 으 면 기록 위 치 를 바 꾸 지 않 으 며 위 치 를 기록 하 는 팀 원 은 현재 알려 진 가장 작다.
(3)a[3]위치 대원 과 기록 위치 대원 을 비교 하고 기록 위치 대원 보다 작 으 면 a[3]를 기록 위치 로 바 꾸 고 기록 위치 대원 보다 작 지 않 으 면 기록 위 치 를 바 꾸 지 않 으 며 위 치 를 기록 하 는 대원 은 현재 알려 진 가장 작다.
・・・・・・
이 를 통 해 a[a.length-1]위치 대원 과 기록 위치 대원 이 비교적 완 성 될 때 까지 기록 위치 대원 은 모든 대원 중에서 가장 작다.
그러나 우 리 는 최종 적 으로 순 위 를 완성 해 야 한 다 는 것 을 알 고 가장 작은 것 은 a[0]위치 에 있 을 것 이 므 로 a[0]위치 팀 원 과 기록 위치 팀 원 을 교환 해 야 한다.가장 작은 멤버 가 성공 적 으로 구덩이 에 들 어 갔다.a[0]번!
2 라운드:
1 라 운 드 를 반복 하 는 과정 은 이번 에는 a[1]위치 부터 차례대로 비교 한 결과 기록 위치 선 수 를 a[1]에 넣 었 다.두 번 째 작은 팀 원 이 성공 적 으로 구덩이 에 들 어 갔다.a[1]번!
・・・・・・
마지막 라운드:
a[a.length-2]위 치 를 순서대로 비교 하기 시 작 했 는데 이때 a[a.length-2]와 a[a.length-1]만 남 았 다.한 번 의 비 교 를 통 해 두 번 째 로 높 은 선 수 를 a[a.length-2]위치 에 넣 었 다.a[a.length-1]위치 선 수 는 틀림없이 가장 높 고 정렬 이 완성 되 었 을 것 이다.
2.JavaScript 선택 정렬 실현

function select_sort(arr) {
  var k;
  var temp;
  var l=arr.length;
  for (var i = 0; i < l-1; i++) {
    k=i;
    for (var j = i+1; j < l; j++) {
      if (arr[j]<arr[k]) {
        k=j;
      }
    }
    temp=arr[k];
    arr[k]=arr[i];
    arr[i]=temp;
  }
  return arr;
}
var a=[11,2,3,445,7,32,71,1,94];
console.log(select_sort(a));
var b=[94,11];
console.log(select_sort(b));

설명:
배열 에 하나의 요소 만 있 으 면 외부 for 순환 에 들 어가 지 않 기 때문에 어떠한 조작 도 하지 않 은 것 과 같 고 결과 도 정확 하 다.
상기 코드 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 합 니 다http://tools.jb51.net/code/HtmlJsRun테스트 실행 결 과 는 다음 과 같 습 니 다.

PS:정렬 에 관 한 프 리 젠 테 이 션 도 구 를 추천 합 니 다.참고 하 시기 바 랍 니 다.
온라인 애니메이션 프레젠테이션 삽입/선택/거품/병합/힐/빠 른 정렬 알고리즘 프로 세 스 도구:
http://tools.jb51.net/aideddesign/paixu_ys
더 많은 자 바스 크 립 트 관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있다.,,,,,,,,,,
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기