<script> function quickSort() { function doSort(a,s,e) { if(s<e) { var pos=partition(a,s,e); doSort(a,s,pos-1); doSort(a,pos+1,e); } } function partition(a,st,en) { var s=st; var e=en+1; var temp=a[s]; while(1) { while(a[++s]<temp); while(a[--e]>temp); if(s>e)break; var tem=a[s]; a[s]=a[e]; a[e]=tem; } a[st]=a[e]; a[e]=temp; return e; } doSort(this,0,this.length-1); return this; } Array.prototype.quickSort=quickSort; alert(new Array(5,2,4,6,1).quickSort()); </script>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
複製代碼 代碼如下:
再你多快,你快不過Array.prototype.sort
var a=[4,723,3,5,67,32,4,43,34,545,43,43,,234,7,367,7,87,23,6,78,7957,t,84,78,34,536,2345,4534566,67,67,54,45,797,67,8798,76543,8];
alert(a.sort());
這才是最快的
加個二叉樹排序
<HTML><HEAD><SCRIPT language = "JavaScript"> function node(data){ this.data = data; var Lnode; var Rnode; this.insert = function insert(newData){ if(newData<this.data){ if( this.Lnode == null){ this.Lnode = new node(newData); }else{ this.Lnode.insert(newData); } }else{ if(this.Rnode == null){ this.Rnode = new node(newData); }else{ this.Rnode.insert(newData); } } } } function tree(){ var root ; this.insertNode = function insertNode(newData){ if(this.root == null) { this.root = new node(newData); this.index = 0; }else{ this.root.insert(newData); } } this.inOrderTraversal = function inOrderTraversal(){ //中序便曆 this.inOrder(this.root); } this.inOrder = function inOrder(N){ if (N!=null){ this.inOrder(N.Lnode); //輸出結果 document.write(N.data + " "); this.inOrder(N.Rnode); } } } //test隨便插入一些數字進來。 var T=new tree(); T.insertNode(39); T.insertNode(69); T.insertNode(94); T.insertNode(47); T.insertNode(50); T.insertNode(72); T.insertNode(55); T.insertNode(41); T.insertNode(97); T.insertNode(73); T.inOrderTraversal(); </sCRIPT> </hEAD> <BODY> <table cellspacing=1 width="75%" border=1> <tr> <td></td></tr></table></bODY></hTML>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]