이 글에서는 주로 JS 정렬 알고리즘 중 버블 정렬, 선택 정렬, 삽입 정렬을 소개하며, 버블 정렬, 선택 정렬, 삽입 정렬의 개념과 원리, 구현 방법을 예제 형식으로 분석합니다. 그것이 모든 사람에게 도움이 되기를 바랍니다.
버블 정렬:
배열의 데이터에 대해 인접한 두 숫자의 크기를 순서대로 비교합니다.
이전 데이터가 이후 데이터보다 큰 경우 두 숫자를 바꿉니다.
시간 복잡도O(n^2)
function bubble(array){ var temp; for(var i=0; i<arr.length; i++){ for(var j=0; j<arr.length; j++){ if(arr[j]>arr[j+1]){ temp = arr[j+1]; arr[j+1] =arr[j]; arr[j]=temp; } }console.log(arr); } }//冒泡排序
선택 정렬:
먼저 원본 배열에서 가장 작은 데이터를 선택하고 위치 1의 데이터와 교환합니다.
나머지 n-1 데이터 중 다음으로 작은 데이터를 선택하여 두 번째 위치의 데이터와 교환합니다.
마지막 두 데이터가 교환될 때까지 반복합니다.
시간 복잡도O(n^2)
function selectionSort(array){ var min,temp; for(var i=0; i<array.length-1; i++){ min=i; for(var j=i+1; j<array.length; j++){ if(array[j]<array[min]){ min=j; } } swap(array,min,i); } console.log(array); }//选择排序 function swap(array,i,j){ var temp =array[i]; array[i]=array[j]; array[j]=temp; }//两个数字交换
삽입 정렬:
먼저 처음 두 데이터를 작은 것부터 큰 것까지 비교합니다.
그런 다음 세 번째 데이터를 처음 정렬된 두 데이터와 비교하여 적절한 위치에 세 번째 데이터를 삽입합니다. 등.
(삽입 정렬에는 두 개의 루프가 있습니다. 외부 루프는 배열을 하나씩 이동하고, 내부 루프는 외부 루프에서 선택한 요소를 앞에 있는 숫자와 비교합니다.)
시간 복잡도O(n^2 )
function insertSort(arr){ var temp, j; for(var i=1; i<arr.length; i++){ temp =arr[i]; j=i; while(j>0 && arr[j-1]>temp){ arr[j]=arr[j-1]; j--; } arr[j]=temp; } }
관련 권장 사항:
JS 계산 정렬 및 기수 정렬 알고리즘 구현example_javascript 기술
javascript 배열 중복 제거 및 빠른 정렬 알고리즘 예 자세한 설명
위 내용은 JS 버블 정렬 선택 정렬 및 삽입 정렬 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!