成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS算法

xiao7cn / 1261人閱讀

摘要:相關(guān)借鑒文章快速排序如果數(shù)組個數(shù)為個,則直接返回數(shù)組本身獲取數(shù)組中間值的索引取到數(shù)組中間那個值,取值,不加,則打印出來是一個數(shù)組,例如,加,則打印出來是一個值,例如定義兩個空數(shù)組,大于中間值放到,小于中間值放到數(shù)組去重冒泡排

相關(guān)借鑒文章:https://juejin.im/entry/57d90...


function quickSort(arr){

//如果數(shù)組個數(shù)為1個,則直接返回數(shù)組本身
if(arr.length<=1){
    return arr
}

//獲取數(shù)組中間值的索引
var quickIndex = Math.floor(arr.length/2);
//quick取到數(shù)組中間那個值,[0]取值,不加[0],則打印出來是一個數(shù)組,例如[9],加[0],則打印出來是一個值,例如9;
var quick = arr.splice(quickIndex,1)[0];
//定義兩個空數(shù)組,大于中間值放到right,小于中間值放到left
var left = [];
var right = [];

for(var i=0,len=arr.length;i

}
var arr = [3,5,7,2,11,77]
document.write(quickSort(arr));//2,3,5,7,11,77


var arr1 = [1,2,2,3,3,4,5,6,6],

  arr2 = [];

for(var i = 0;i < arr1.length;i++){

if(arr2.indexOf(arr1[i]) < 0){
    arr2.push(arr1[i])
}

}
document.write(arr2);//1,2,3,4,5,6

冒泡排序原理:讓數(shù)組中的當(dāng)前項和后一項進(jìn)行比較,如果當(dāng)前項大于后一項,我們讓兩者交換位置(小->大)

每一輪從前到后兩兩比較,雖然不一定實現(xiàn)最后的排序效果,但是可以把當(dāng)前最大的放在末尾
具體比較的輪數(shù):ary.length-1 數(shù)組有多長,我們只需要把總長度-1個數(shù)分別放在末尾,即可實現(xiàn)最后的排序
第一輪比較5次:一共六個,不需要和自己比較
第二輪比較4次:一共六個,不用和自己比,也不用和第一輪放在末尾的那個最大值比
第三輪比較3次:
...
每一輪比較的次數(shù):ary.length - 1(不用和自己比)-當(dāng)前已經(jīng)執(zhí)行的論數(shù)(執(zhí)行一輪向末尾放一個最大值,這些值不需要在比較) a=12 b=13 a和b交換值

第一種方法:

c=a
a=b
b=c

第二種方法:
a=a+b;25

b=a-b;12
a=a-b;13

function bubble(ary){
for(var i=0;ifor(var j=0;jif(ary[j]>ary[j+1]){
var temp = ary[j];
ary[j] = ary[j+1];
ary[j+1] = temp;
}
}
}
return ary;
}
var ary = [5,3,1,57,89,9];
console.log(bubble(ary));

如果是從大到小排序,直接return ary.reverse();


Array.prototype.sum = function(){

var cur = 0;
return this.reduce((prev,next)=>{
    return cur = prev + next;
})
return cur;

}
var ary = [1,2,3,4];
console.log(ary.sum());//10

function sumFun(cur){

var sumTot = 0;
return cur.reduce((prev,next) => {
    return  sumTot = prev + next;
},0);
return sumTot;

}
var num = [1,2,3]
sumFun(num);//6

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102715.html

相關(guān)文章

  • 16道初級腳本算法,你要挑戰(zhàn)一下嗎?

    摘要:設(shè)置首字母大寫算法挑戰(zhàn)返回一個字符串確保字符串的每個單詞首字母都大寫,其余部分小寫。確認(rèn)末尾字符算法檢查一個字符串是否以指定的字符串結(jié)尾。刪除數(shù)組中特定值算法挑戰(zhàn)刪除數(shù)組中的所有的假值。 在w3cschool上看到了這些初級算法題目,自己先嘗試做了一下,不會的也會查看一下別人的借鑒一下思路,更多的幫助自己熟悉字符串和數(shù)組方法的應(yīng)用.如果您有更好的解法,可以指出來還有中級算法題目和后面的...

    kumfo 評論0 收藏0
  • 使用JS實現(xiàn)三種基本的排序算法以及三種算法的比較

    摘要:介紹排序算法是算法中最常見的算法之一,我這里要介紹的是排序算法中的三種基本算法冒泡排序選擇排序插入排序,在文章的后面我會對三種算法的速度進(jìn)行對比。 1.介紹 排序算法是算法中最常見的算法之一,我這里要介紹的是排序算法中的三種基本算法:冒泡排序、選擇排序、插入排序,在文章的后面我會對三種算法的速度進(jìn)行對比。 2.冒泡排序 冒泡排序其名來源與其算法實現(xiàn),會使得數(shù)組中的元素一個個從數(shù)組一端漂...

    wh469012917 評論0 收藏0
  • Node.js學(xué)習(xí)之路16——加密

    摘要:使用方法創(chuàng)建一個對象創(chuàng)建對象,加密算法為讀取該文件,為是文件的對象創(chuàng)建一個摘要輸出摘要算法算法將散列算法與一個密鑰結(jié)合在一起,以阻止對簽名完整性的破壞。 未完成 1. 加密crypto 在crypto模塊中,為每一種加密算法定義了一個類 可以使用getCiphers方法查看在Node.js中所有能夠使用的加密算法crypto.getCiphers() 可以使用getHashes(...

    zacklee 評論0 收藏0
  • JS每日一題:Vue中的diff算法?

    摘要:,文本節(jié)點(diǎn)的比較,需要修改,則會調(diào)用。,新節(jié)點(diǎn)沒有子節(jié)點(diǎn),老節(jié)點(diǎn)有子節(jié)點(diǎn),直接刪除老節(jié)點(diǎn)。所以一句話,的作用主要是為了高效的更新虛擬。 20190125 Vue中的diff算法? 概念: diff算法是一種優(yōu)化手段,將前后兩個模塊進(jìn)行差異對比,修補(bǔ)(更新)差異的過程叫做patch(打補(bǔ)丁) 為什么vue,react這些框架中都會有diff算法呢? 我們都知道渲染真實dom的開銷是很大的...

    Caicloud 評論0 收藏0
  • JS寫KPM算法

    摘要:通過觀察發(fā)現(xiàn),如果匹配字符串中有相同的子字符串,那么的變化會有所不同。所以這個值的變化跟目標(biāo)字符串沒什么關(guān)系,只跟自己的子字符串的重復(fù)性有關(guān)。的兩側(cè)子字符串相等,所以這時候倒數(shù)兩位位位代碼量不多但理解起來有點(diǎn)困難反正我理解了很久。 最近公司啟動小程序項目中,在搜索模塊有這么個功能需求:當(dāng)用戶輸入搜索內(nèi)容時實時地請求服務(wù)器得到一組較高匹配度的搜索關(guān)鍵字,在這些關(guān)鍵字中高亮顯示用戶的匹配輸...

    winterdawn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<