快速排序java递归代码 快速排序java递归代码是什么( 四 )


归并排序:
function mergeSort(arr){var len= arr.length,arrleft=[],arrright =[],gap=1,maxgap=len-1,gapArr=[],glen,n;while(gapmaxgap){gap = Math.pow(2,n);if(gap=maxgap){gapArr.push(gap);}n++;}glen = gapArr.length;for (var i = 0; iglen; i++) {gap = gapArr[i];for (var j = 0; jlen; j=j+gap*2) {arrleft = arr.slice(j, j+gap);arrright = arr.slice(j+gap,j+gap*2);console.log("left:"+arrleft,"right:"+arrright);arr = arr.slice(0,j).concat(subSort(arrleft,arrright),arr.slice(j+gap*2));}}return arr;}
排序[4,2,6,3,1,9,5,7,8,0]输出:
left:4 right:2left:6 right:3left:1 right:9left:5 right:7left:8 right:0left:2,4 right:3,6left:1,9 right:5,7left:0,8 right:left:2,3,4,6 right:1,5,7,9left:0,8 right:left:1,2,3,4,5,6,7,9 right:0,8
看出来从最小的单位入手 。
第一轮先依次合并相邻元素:4,2;6,3; 1,9; 5,7; 8,0
合并完成之后变成: [2,4,3,6,1,9,5,7,0,8]
第二轮以2个元素为一个单位进行合并:[2,4],[3,6];[1,9],[5,7];[0,8],[];
合并完成之后变成:[2,3,4,6,1,5,7,9,0,8]
第三轮以4个元素为一个单位进行合并:[2,3,4,6],[1,5,7,9];[0,8],[]
合并完成之后变成: [1,2,3,4,5,6,7,9,0,8];
第四轮以8个元素为一个单位进行合并: [1,2,3,4,5,6,7,9],[0,8];
合并完成 。[0,1,2,3,4,5,6,7,8,9];
快速排序java递归代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于快速排序java递归代码是什么、快速排序java递归代码的信息别忘了在本站进行查找喔 。