快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路: 在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放到这个数的左边,依次递归调用直到比较队列中只有两个数。
代码实现:
var arrs = [23,85,61,37,55,12,63,11,99,39,70,21,23]; function QuickSort(arr , s,e){ var len = e; var token = arr[s]; for(var i=s+1;i<=len;i++){ var ttt = arr[i]; if(token >= arr[i]){ var temp = arr[i]; for(var k = i;k>s;k--){ arr[k] = arr[k-1]; } arr[s] = temp; s++; } } return s; } function sort(arrs,s,e){ var t = QuickSort(arrs,s,e); if(t-1 >= s ){ sort(arrs , s,t-1); } if(t+1 <= e){ sort(arrs , t+1,e); } } sort(arrs,0,arrs.length); document.getElementById("app").innerHTML = arrs+"";
注:代码可能还有可以优化的地方,欢迎吐槽!