課程
/前端開發(fā)
/JavaScript
/JavaScript進(jìn)階篇
function sortNum(a,b) { ?return a - b; //升序,如降序,把“a - b”該成“b - a”
2015-02-23
源自:JavaScript進(jìn)階篇 7-22
正在回答
因?yàn)閟ort()函數(shù)使用的是冒泡排序,冒泡排序會重復(fù)地走訪要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,一直重復(fù)地進(jìn)行直到說該數(shù)列已經(jīng)排序完成。如果a-b>0(即正數(shù))就把a(bǔ)和b的位置交換,也就是較小的一個數(shù)會排到前面;如果b-a>0就把a(bǔ)和b的位置交換,也就是較大的一個數(shù)會排到前面。
感覺這個知道就好,個人理解就是按照字母表順序 a為1,b為2。 從小到大排序,反之則從大到小。
hengly 提問者
function?bubbleSort(arr)?{
????var?i?=?arr.length,?j;
????var?tempExchangVal;
????while?(i?>?0)?{
????????for?(j?=?0;?j?<?i?-?1;?j++)?{
????????????if?(arr[j]?>?arr[j?+?1])?{
????????????????tempExchangVal?=?arr[j];
????????????????arr[j]?=?arr[j?+?1];
????????????????arr[j?+?1]?=?tempExchangVal;
????????????}
????????}
????????i--;
????}
????return?arr;
}
?
var?arr?=?[3,?2,?4,?9,?1,?5,?7,?6,?8];
var?arrSorted?=?bubbleSort(arr);
console.log(arrSorted);
alert(arrSorted);
這是什么鬼?
紫舞夜月
不用理解太深,知道就好。不過這里解釋一下,冒泡排序算法其實(shí)是一個比較有意思的東西。
看這個:
這里就解釋了如果不斷對元素進(jìn)行重復(fù)替換的話,最后
return b-a就會形成升序,背后的原理算法導(dǎo)論有講過,推倒過程實(shí)際上和數(shù)學(xué)上的各種公式怎么來性質(zhì)是一樣的。
感覺return a-b,返回的就是一個差值,實(shí)際上起作用的就是sort方法,比較、交換元素的作用!共同理解,不知對否
舉報
本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動態(tài)交互世界
3 回答return b-a為什么是升序
4 回答為什么return a-b就是升序,b-a就是降序??
2 回答為什么左邊的return a - b;就是升序額?
5 回答為什么return a-b可以決定升降序?
2 回答為什么a-b>0是升序,b-a>0就是降序了?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-02-24
因?yàn)閟ort()函數(shù)使用的是冒泡排序,冒泡排序會重復(fù)地走訪要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,一直重復(fù)地進(jìn)行直到說該數(shù)列已經(jīng)排序完成。
如果a-b>0(即正數(shù))就把a(bǔ)和b的位置交換,也就是較小的一個數(shù)會排到前面;
如果b-a>0就把a(bǔ)和b的位置交換,也就是較大的一個數(shù)會排到前面。
感覺這個知道就好,個人理解就是按照字母表順序 a為1,b為2。 從小到大排序,反之則從大到小。
2015-07-29
function?bubbleSort(arr)?{
????var?i?=?arr.length,?j;
????var?tempExchangVal;
????while?(i?>?0)?{
????????for?(j?=?0;?j?<?i?-?1;?j++)?{
????????????if?(arr[j]?>?arr[j?+?1])?{
????????????????tempExchangVal?=?arr[j];
????????????????arr[j]?=?arr[j?+?1];
????????????????arr[j?+?1]?=?tempExchangVal;
????????????}
????????}
????????i--;
????}
????return?arr;
}
?
var?arr?=?[3,?2,?4,?9,?1,?5,?7,?6,?8];
var?arrSorted?=?bubbleSort(arr);
console.log(arrSorted);
alert(arrSorted);
這是什么鬼?
2015-07-23
不用理解太深,知道就好。不過這里解釋一下,冒泡排序算法其實(shí)是一個比較有意思的東西。
看這個:
function?bubbleSort(arr)?{
????var?i?=?arr.length,?j;
????var?tempExchangVal;
????while?(i?>?0)?{
????????for?(j?=?0;?j?<?i?-?1;?j++)?{
????????????if?(arr[j]?>?arr[j?+?1])?{
????????????????tempExchangVal?=?arr[j];
????????????????arr[j]?=?arr[j?+?1];
????????????????arr[j?+?1]?=?tempExchangVal;
????????????}
????????}
????????i--;
????}
????return?arr;
}
?
var?arr?=?[3,?2,?4,?9,?1,?5,?7,?6,?8];
var?arrSorted?=?bubbleSort(arr);
console.log(arrSorted);
alert(arrSorted);
這里就解釋了如果不斷對元素進(jìn)行重復(fù)替換的話,最后
return b-a就會形成升序,背后的原理算法導(dǎo)論有講過,推倒過程實(shí)際上和數(shù)學(xué)上的各種公式怎么來性質(zhì)是一樣的。
2015-03-08
感覺return a-b,返回的就是一個差值,實(shí)際上起作用的就是sort方法,比較、交換元素的作用!共同理解,不知對否