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 79 80 81 82
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>归并排序</title> <!--<link rel="stylesheet" type="text/css" href="../style/fdt.css" />--> <script type="text/javascript" src="../js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="../js/jquery.easydrag.handler.beta2.js"></script> <script type="text/javascript">
$(document).ready( function() { var array_1 = [9,8,7,6,5,4,3,2,1]; alert(array_1); /*mergeSort*/ //迭代实现 alert(mergeSort(array_1));
} );
</script>
<style type="text/css"> * { padding:0; margin:0; }
body { padding: 100px; font-size: 15px; }
</style>
<script type="text/javascript"> function merge(left,right){ var result=[]; while(left.length>0 && right.length>0){ if(left[0]<right[0]){ result.push(left.shift()); }else{ result.push(right.shift()); } } alert(" left="+left+" right"+right+" result="+result); alert(result.concat(left).concat(right)); return result.concat(left).concat(right); }
function mergeSort(items){ if(items.length == 1){ return items; } var middle=Math.floor(items.length/2), left=items.slice(0,middle), right=items.slice(middle); alert(" middle="+middle+" items.length="+items.length+" left="+left+" right"+right+" items"+items); return merge(mergeSort(left),mergeSort(right)); }
</script>
</head>
<body> 归并排序 </body> </html>
|