javascript冒泡排序小結(jié)
更新時間:2016年04月10日 15:53:39 投稿:hebedich
冒泡排序由于比較簡單和容易理解,往往會成為人們首先想到的排序算法。最基本的想法就是在一次里面比較兩個數(shù)字,并且確保他們在移動到其他項目之前有一個正確的順序。在每一關(guān)結(jié)束,有價值的“排序”到正確的位置,最終只留下其他項目排序。
冒泡排序示例,雙向冒泡排序與對雙向冒泡排序稍微的改進(jìn)的可視化效果。
代碼很簡單,不知道有木有未知bug。
大神請勿吐槽
冒泡排序示例
var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ]; for(var i=0;i<ls.length;i++){ for(var j=i+1;j<ls.length;j++){ if(ls[i]>ls[j]){ ls[i]=ls[i]+ls[j]; ls[j]=ls[i]-ls[j]; ls[i]=ls[i]-ls[j]; } } }
雙向冒泡排序示例
var ls=[ 6,13,98,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ]; for(var i=0;i<ls.length;i++){ for(var j=i+1;j<ls.length-i;j++){ if(ls[lent-1-i]<ls[lent-j]){ ls[lent-1-i]=ls[lent-1-i]+ls[lent-j]; ls[lent-j]=ls[lent-1-i]-ls[lent-j]; ls[lent-1-i]=ls[lent-1-i]-ls[lent-j]; }//后面的比較 if(ls[i]>ls[j]){ ls[i]=ls[i]+ls[j]; ls[j]=ls[i]-ls[j]; ls[i]=ls[i]-ls[j]; }//前面的比較 } }
雙向冒泡排序稍微改進(jìn)示例
var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ]; var lent=ls.length; for(var i=0;i<ls.length;i++){ for(var j=i*2;j<ls.length-2*i;j++){ if(ls[i*2]>ls[j+1]){ ls[i*2]=ls[i*2]+ls[j+1]; ls[j+1]=ls[i*2]-ls[j+1]; ls[i*2]=ls[i*2]-ls[j+1]; }//保持內(nèi)層第一個數(shù)為循環(huán)最小 if(ls[lent-i*2-1]<ls[lent-j-1]){ ls[lent-i*2-1]=ls[lent-i*2-1]+ls[lent-j-1]; ls[lent-j-1]=ls[lent-i*2-1]-ls[lent-j-1]; ls[lent-i*2-1]=ls[lent-i*2-1]-ls[lent-j-1]; }////保持內(nèi)層倒數(shù)第一個數(shù)為循環(huán)最大 if(ls[lent-2-i*2]<ls[lent-j-1]){ ls[lent-2-i*2]=ls[lent-2-i*2]+ls[lent-j-1]; ls[lent-j-1]=ls[lent-2-i*2]-ls[lent-j-1]; ls[lent-2-i*2]=ls[lent-2-i*2]-ls[lent-j-1]; }//倒數(shù)上一個 if(ls[i*2+1]>ls[j+1]){ ls[i*2+1]=ls[i*2+1]+ls[j+1]; ls[j+1]=ls[i*2+1]-ls[j+1]; ls[i*2+1]=ls[i*2+1]-ls[j+1]; }//下一個 } }
您可能感興趣的文章:
- js交換排序 冒泡排序算法(Javascript版)
- JavaScript中的冒泡排序法
- javascript 冒泡排序 正序和倒序?qū)崿F(xiàn)代碼
- js 排序動畫模擬 冒泡排序
- javascript中數(shù)組的冒泡排序使用示例
- JS實(shí)現(xiàn)冒泡排序,插入排序和快速排序并排序輸出
- JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼
- js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序原理
- Javascript冒泡排序算法詳解
- js對數(shù)組中的數(shù)字從小到大排序?qū)崿F(xiàn)代碼
- 33種Javascript 表格排序控件收集
- js常用排序?qū)崿F(xiàn)代碼
- JavaScript實(shí)現(xiàn)的冒泡排序法及統(tǒng)計相鄰數(shù)交換次數(shù)示例
相關(guān)文章
javascript學(xué)習(xí)筆記(一) 在html中使用javascript
javascript學(xué)習(xí)筆記之在html中使用javascript 的方法,需要的朋友可以參考下2012-06-06詳解JavaScript中雙等號引起的隱性類型轉(zhuǎn)換
JavaScript中由==判斷所引起的轉(zhuǎn)換會引發(fā)解釋器的一些列執(zhí)行步驟,接下來我們就來詳解JavaScript中雙等號引起的隱性類型轉(zhuǎn)換,需要的朋友可以參考下2016-05-05JavaScript入門教程(8) Location地址對象
location 地址對象 它描述的是某一個窗口對象所打開的地址。要表示當(dāng)前窗口的地址,只需要使用“l(fā)ocation”就行了2009-01-01實(shí)例區(qū)別onClick和onDBClick兩事件方法
實(shí)例區(qū)別onClick和onDBClick兩事件方法2008-09-09