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();