본문 바로가기

Web/JAVASCRIPT

JavaScript [알고리즘]퀵 정렬(Quick Sort)

반응형

<script>

// 교환

function Swap(arr, idx1, idx2) { 

var temp;

temp = arr[idx1];

arr[idx1] = arr[idx2];

arr[idx2] = temp; 

}

 

function Partition(arr, left, right) {

var pivot = arr[left];

low = left + 1;

high = right;

 

while (low <= high) { // 교차되지 않을 때까지 반복

 

// 피벗보다 큰 값을 찾는 과정

while (low <= right  && pivot >= arr[low])

low++;

// 피벗보다 작은 값을 찾는 과정

while (high >= (left+1) && pivot <= arr[high])  

high--;

 

// 교차되지 않는 상태라면 Swap 실행

if (low <= high) { 

Swap(arr, low, high);

}

}

Swap(arr, left, high); // 피벗과 high 가 가리키는 대상 교환

 

return high; // 옮겨진 피벗의 위치정보 교환

}

 

function QuickSort(arr, left, right) {

if (left < right) {

pivot = Partition(arr, left, right); 

QuickSort(arr, left, pivot - 1);

QuickSort(arr, pivot + 1, right);

}

}

 

var arr = [4,2,8,1,9,7,3,6,5];

QuickSort(arr, 0, arr.length - 1);

document.write(arr);

</script>

 

http://terms.naver.com/entry.nhn?docId=2270444&cid=51173&categoryId=51173 

반응형

'Web > JAVASCRIPT' 카테고리의 다른 글

링크 테두리 없애기  (0) 2017.04.13
encodeURI, encodeURIComponent, escape 함수 차이점  (0) 2011.10.07
소셜보내기  (0) 2011.10.07
javascript 원하는 부분만 인쇄하기  (0) 2011.08.08
숫자만 입력 받기  (0) 2011.07.17