JavaScript快速排序_javascript技巧

來源:互聯網
上載者:User
<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需重新整理才能執行]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.