首页 > 代码库 > 快速排序
快速排序
核心思想:在当前参加排序的序列中任意选择一个元素,把小于等于分界元素的所有元素都移到分界元素的前边,把大于等于分界元素的所有元素都移到分界元素的后边,这样,分界元素正好处在排序的最终位置上,并且把当前参加排序的序列划分成前后两个子序列。然后,分别对这两个子序列递归地进行上述过程,直到使得所有元素都到达整个排序后它们应处的位置上。
var arr1 = [38,49,65,97,76,13,27,49];
function swap(arr,x,y) { var temp ; temp = arr[x]; arr[x] = arr[y]; arr[y] = temp;}var quick= function(arr,s,t){ var i, j,temp; if(s<t){ i=s; j=t+1; while(1){ do { i++; }while(!(arr[s]<=arr[i]||i==t)); do { j--; }while(!(arr[s]>=arr[j]||j==s)); if(i<j){ swap(arr,i,j); }else{ break; } } swap(arr,s,j); quick(arr,s,j-1); quick(arr,j+1,t); }}var quickSort = function(arr){ var n = arr.length; quick(arr,0,n-1);}
quickSort(arr1);
console.log(arr1);
算法分析:快速排序的时间复杂度是O(n2),不稳定排序
快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。