亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

升降序函數的原理

function(a,b){
????return?a-b;
}

為什么返回 a-b就是升序, 返回b-a就是降序,原理是什么

正在回答

8 回答

相當于數組下標a和數組下標b進行比較,若a-b大于零,即為真(true)即下標互換位置,若小于零即為假(flase),及不變,可以吧a-b和b-a看作為a>b和b>a,真即運行,假即跳過.

11 回復 有任何疑惑可以回復我~
#1

ggangelo

這是反人類的,按正常來說應該是要返回一個比較的bool值。而不是要兩個值去相減再比較是否大于0。。這樣排序函數的邏輯看起來很奇怪
2021-03-17 回復 有任何疑惑可以回復我~

?不用知道會用就行了,細枝末節的東西全學會就是浪費精力,工作后也是靠偷和改。主要是能看懂和會用。

1 回復 有任何疑惑可以回復我~

我覺得指的是ASCII碼,a97,b98,a-b是按ASCII碼升序

0 回復 有任何疑惑可以回復我~

?該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:?

? 若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。
? 若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
? 若返回值>=1,則表示 A 在排序后的序列中出現在 B 之后。

sortNum函數 計算的就是數組里面的元素,如果是return b-a?? 就是用數組后面的數-減去前面數,獲得一個數字

可以是 -9999 也可以是 9999? 隨便一個數?? 但是 retrun 出來的 結果 傳入 myarr.sort()這個 方法后他會判斷是否大于1?? 如果大于1 那說明 后面的數大于前面的數字? 也就是b大于a 那么就會把b和a 交換? 他應該是從最左邊開始比較 如果大就交換? 把最小的數字放在最后? 如此多次重復 把數組的數字 排序好(也就是冒泡排序?? 當然也可能是其他的交換排序? 比如簡單交換排序)? 總的來說?? myarr.sort() 以及把功能實現給我們了? 我們只要調用就行了

9 回復 有任何疑惑可以回復我~

我覺得a,b傳遞的應該是數組中前后相鄰的兩個元素,其排序原理類似于c語言中的冒泡法,a-b升序即一個有n個元素的數組中兩個相鄰元素元素比較大小大的數排序,從而使最大的那個數排到最后,然后在對數組前n-1各元素做相同處理,以此類推從而達到升序排列,b-a降序道理也是一樣

0 回復 有任何疑惑可以回復我~

可以看一下sort方法的實現代碼

0 回復 有任何疑惑可以回復我~

同問 有知道原理的嗎

0 回復 有任何疑惑可以回復我~

看前邊的視頻

0 回復 有任何疑惑可以回復我~
#1

qq_慕容925192

前面那一個部分有視頻?我也想問這個問題
2018-12-26 回復 有任何疑惑可以回復我~
#2

PaulPierce

老哥 可能有點伸手黨的感覺. 不過的確找不到你說的哪個視頻. 謝謝你.
2018-12-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

升降序函數的原理

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號