>웹 프론트엔드 >JS 튜토리얼 >JS 버블 정렬 선택 정렬 및 삽입 정렬 예제 분석

JS 버블 정렬 선택 정렬 및 삽입 정렬 예제 분석

小云云
小云云원래의
2017-12-14 09:25:122237검색

이 글에서는 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.