1 //快速排序 2 function quickSort(myArray,left,right) 3 { 4 5 if (left < right) 6 { 7 //Swap(s[l], s[(left + right) / 2]); //将中间的这个数和第一个数交换 8 var i = left, j = right, x = myArray[left]; 9 while (i < j) 10 { 11 while(i < j && myArray[j] >= x) // 从右向左找第一个小于x的数 12 j--; 13 if(i < j) 14 myArray[i++] = myArray[j]; 15 16 while(i < j && myArray[i] < x) // 从左向右找第一个大于等于x的数 17 i++; 18 if(i < j) 19 myArray[j--] = myArray[i]; 20 } 21 myArray[i] = x; 22 quickSort(myArray, left, i - 1); // 递归调用 23 quickSort(myArray, i + 1, right); 24 } 25 26 return myArray; 27 } 28 29 30 31 //测试排序 32 function testQuickSort() 33 { 34 var myArray=initArray(); 35 var myArrayAfterSort=quickSort(myArray,0,myArray.length-1); 36 for (var i = 0; i < myArrayAfterSort.length; i++) { 37 console.log(myArrayAfterSort[i]); 38 }; 39 } 40 //初始化数组 41 function initArray() 42 { 43 var myArray=[3,6,2,9,1,15,33,45,12,66,98,27]; 44 return myArray; 45 } 46 47 testQuickSort();