算法23 ◉‿◉ 归并排序
本帖最后由 不二如是 于 2017-5-27 07:00 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
程序分析:
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。
具体算法描述如下:
<1>.把长度为n的输入序列分成两个长度为n/2的子序列;
<2>.对这两个子序列分别采用归并排序;
<3>.将两个排序好的子序列合并成一个最终的排序序列。
源代码:
**** Hidden Message *****
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
顶。。。。 em 看一哈 111 本帖最后由 凌乱大帅比 于 2018-10-11 16:23 编辑
//归并排序
var arr2_1 = ;
var arr2_2 = ;
var temp = [],j=0,k=0; //j:数组A的位置循环数 k:数组B的位置循环数
var merge = function(arr1,arr2){
for(var i=0;i<arr1.length+arr2.length;i++){ //循环次数为两个数组的总长
if(arr1>arr2){ //如果A要压入的数大于B相应的,那就压入B
temp.push(arr2);
j++;
}else{
temp.push(arr1) //else正常压入A的数
k++;
}
}
console.log(temp);
}
merge(arr2_1,arr2_2);
emm。。。。。。。。第二个能做的起的排序题,准确的说是能够理解意思{:10_266:} 对比了运行速度,我知道我又错了{:10_301:} @不二如是
为什么第一个while已经处理完了所有的数据,后面还要跟两个while呢 来看看 学习一下 学习 666 {:5_103:} 回复 学习下 1 瞅瞅 5555 学习 111
页:
[1]
2