웹 프론트엔드 JS 튜토리얼 js_javascript 기술에서 세 가지 정렬 알고리즘 공유

js_javascript 기술에서 세 가지 정렬 알고리즘 공유

May 16, 2016 pm 05:50 PM
정렬 알고리즘

코드 복사 코드는 다음과 같습니다.

/**
* 값 교환 연산
* arr 연산 중인 배열
* i 연산 중인 요소의 인덱스 값
* j 연산 중인 두 요소 사이의 거리
*/
함수 Refer(arr , i, j){
varchange = (arr[i] - arr[i - j]) &lt ? true: false, value
if (change) value; = arr[ i];
arr[i] = arr[i - j];
arr[i - j] = value
returnargs.callee(arr, i - j, j);
}
else {
return arr;
}
}
//Insertion sort
function insert(array){
for (var i = 1, len = array.length; i < len i ) {
if (array[i] < array[i - 1]) {
refer(array, i, 1)
}
return array;
}


위 부분은 삽입 정렬이고, 그 다음에는 힐 정렬:


//Hill sort
function shell(array){
var length = array.length, value; >for ( var i = Math.floor(length / 2); i > 0; i = Math.floor(i / 2)) {
for (var j = i; j if (array[j] < array[j - i]) {
refer(array, j, i)
}
else {
continue; 🎜>}
}
return array;
}


두 메소드에 사용된 참조 메소드는 동일합니다. 마지막으로 병합 정렬:



코드 복사
코드는 다음과 같습니다. //병합 정렬 함수 순서(arr1, arr2){ var arrLong = arr1.length > arr2.length ? arr1 : arr2
var arrShort = arr1.length <= arr2.length ? 🎜>var arr = [];
for (var i = 0, l = arrShort.length; i < l; i ) {
for (var j = 0, len = arrLong.length; j &lt ; len; j ) {
if (arrShort[i] < arrLong[j]) {
arr.push(arrShort[i])
if (i == l - 1) 🎜>for (var m = 0, n = arrLong.length; m < n; m ) {
arr[arr.length] = arrLong[m]
}
break; }
else {
arr.push(arrLong[j]);
arrLong.shift()
계속
}
}
return arr ;
}


좋은 제안이 있는 학생은 메시지를 남겨주세요! 여기서 자세히 설명할 필요 없이 코드만 살펴보세요.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Kuaishou 양면 시장의 복잡한 실험 설계 문제 Kuaishou 양면 시장의 복잡한 실험 설계 문제 Apr 15, 2023 pm 07:40 PM

Kuaishou 양면 시장의 복잡한 실험 설계 문제

구글은 AI를 이용해 10년 순위 알고리즘의 봉인을 깨고 매일 수조 번씩 실행되는데 네티즌들은 이것이 가장 비현실적인 연구라고 말한다. 구글은 AI를 이용해 10년 순위 알고리즘의 봉인을 깨고 매일 수조 번씩 실행되는데 네티즌들은 이것이 가장 비현실적인 연구라고 말한다. Jun 22, 2023 pm 09:18 PM

구글은 AI를 이용해 10년 순위 알고리즘의 봉인을 깨고 매일 수조 번씩 실행되는데 네티즌들은 이것이 가장 비현실적인 연구라고 말한다.

Vue 기술 개발에서 데이터를 필터링하고 정렬하는 방법 Vue 기술 개발에서 데이터를 필터링하고 정렬하는 방법 Oct 09, 2023 pm 01:25 PM

Vue 기술 개발에서 데이터를 필터링하고 정렬하는 방법

배열의 정렬 알고리즘은 무엇입니까? 배열의 정렬 알고리즘은 무엇입니까? Jun 02, 2024 pm 10:33 PM

배열의 정렬 알고리즘은 무엇입니까?

Swoole Advanced: 멀티스레딩을 사용하여 고속 정렬 알고리즘을 구현하는 방법 Swoole Advanced: 멀티스레딩을 사용하여 고속 정렬 알고리즘을 구현하는 방법 Jun 14, 2023 pm 09:16 PM

Swoole Advanced: 멀티스레딩을 사용하여 고속 정렬 알고리즘을 구현하는 방법

프로그래머가 마스터해야 할 상위 10가지 정렬 알고리즘(1부) 프로그래머가 마스터해야 할 상위 10가지 정렬 알고리즘(1부) Aug 15, 2023 pm 02:55 PM

프로그래머가 마스터해야 할 상위 10가지 정렬 알고리즘(1부)

C#에서 선택 정렬 알고리즘을 구현하는 방법 C#에서 선택 정렬 알고리즘을 구현하는 방법 Sep 20, 2023 pm 01:33 PM

C#에서 선택 정렬 알고리즘을 구현하는 방법

MySQL과 Java를 사용하여 간단한 정렬 알고리즘 기능을 구현하는 방법 MySQL과 Java를 사용하여 간단한 정렬 알고리즘 기능을 구현하는 방법 Sep 20, 2023 am 09:45 AM

MySQL과 Java를 사용하여 간단한 정렬 알고리즘 기능을 구현하는 방법

See all articles