offer 대작 전 - JS 정렬 알고리즘 실현
1. 거품 정렬 거품 정렬 의 사상 은 순서대로 크기 를 비교 한 다음 에 위치 에서 크기 를 교환 하 는 것 이다.다음은 알고리즘 으로 이 루어 지 겠 습 니 다.
function bubble(arr) {
for(var i = 0,len = arr.length; i < len - 1; i++) {
for(var j=i+1; j//
if(arr[i]>arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
이것 이 바로 거품 정렬 의 실현 과정 이다. 사실은 순환 비교 한 다음 에 위치 상의 교환 을 하여 정렬 의 목적 을 달성 하 는 것 이다.
2. 빠 른 정렬, 빠 른 정렬 도 매우 고전적 인 정렬 입 니 다. 제 가 이해 하 는 바 에 의 하면 빠 른 정렬 사상 은 이분법 과 같 습 니 다. 2 분 의 1, 4 분 의 1, 그리고 8 분 의 1..........................................(참고 값) 그 다음 에 두 조각 으로 나 누 었 습 니 다. 하 나 는 모두 중간 값 보다 작 습 니 다. 하 나 는 중간 값 보다 큽 니 다. 그러면 우 리 는 첫 번 째 정렬 을 완성 한 다음 에 우 리 는 첫 번 째 정렬 함 수 를 재 귀적 으로 호출 하여 똑 같은 조작 을 한 다음 에.............................................
function quick(arr) {
// 1,
if(arr.length <= 1) {
return arr;
}
// , ,
var lessArr = [];
var moreArr = [];
var consult = arr[0];
for(let i = 1,len = arr.length; i < len; i++) {
if(arr[i]>consult) {
moreArr.push(arr[i]);
}else{
lessArr.push(arr[i]);
}
}
// ,
return [].concat(quick(leftArr)[q],quickSort(rightArr));
}
3. 정렬 을 선택 하면 거품 정렬 과 비슷 한 느낌 이 듭 니 다. 거품 정렬 은 두 위 치 를 조회 하지 않 고 교환 하 는 것 과 차이 가 있 습 니 다. 정렬 을 선택 하면 현재 위치 보다 작은 숫자 를 찾 을 때 교환 하 는 것 을 알 수 있 습 니 다.
function select(arr) {
var minIndex,
temp;
for(var i = 0, len = arr.length; i < len-1; i++) {
minIndex = i;
for(var j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
4. 정렬 삽입 정렬 삽입 정렬 은 현재 값 의 이전 값 이 존재 하 는 전제 에서 계속 비교 하고 작 으 면 위 치 를 교환 하 며 크 면 끝 납 니 다.
function insertion(arr) {
var pre,
cur;
for (var i = 1, len = arr.length; i < len; i++) {
pre = i - 1;
cur = arr[i];
while(pre >= 0 && arr[pre] > cur) {
arr[pre + 1] = arr[pre];
pre--;
}
arr[pre + 1] = cur;
}
return arr;
}
이것 은 현재 고찰 이 비교적 많은 몇 가지 정렬 방법 이다. 물론 정렬 방법 은 이 몇 가지 만 먼저 열거 하 는 것 이 아니 라 자신 이 복습 하기에 편리 할 뿐만 아니 라 다른 정렬 사상 도 계속 공부 할 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
고층 함수고층 함수란 함수를 인수, 반환값으로서 취급하는 함수 … 잘 모르기 때문에, 우선 해 보았습니다! (↑가독성의 관점에서 별로 추천하지 않는다) 해봤어 인수를 하나씩 넣는 쓰는 법 해봤어 기초를 공부 중이므로 기본으로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.