1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
(function (W) {
function sort(a,lo,hi) { if(hi<=lo)return; var j = partition(a,lo,hi); sort(a,lo,j-1); sort(a,j+1,hi); }
function partition(a,lo,hi) { var i = lo,j=hi+1; var v = a[lo]; while(true){ while (a[++i] < v){ if(i==hi){break;} } while (v < a[--j]){ if(j==lo){break;} } if(i>=j){break;} exch(a,i,j); } exch(a,lo,j); return j; }
function exch(a,m,n) { var swap = a[m]; a[m] = a[n]; a[n] = swap; }
W.QuickSort = function (a) { sort(a,0,a.length); } })(window);
(function () { var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; var arr = []; for(var i=0;i<1000000;i++){ var id = Math.ceil(Math.random()*35); arr[i] = chars[id]; } console.time("QuickSort"); QuickSort(arr); console.timeEnd("QuickSort"); })();
|
留言
欢迎交流想法。留言会通过 GitHub Issues 保存,首次使用需要登录 GitHub。