7 回答

TA貢獻(xiàn)1799條經(jīng)驗 獲得超8個贊
怎么根據(jù)sort函數(shù)得到的索引來娑雜Φ耐計matlab
給你舉了例子:X=magic(5)X=17241815235714164613202210121921311182529>>[a,b]=sort(X,2)a=18151724571416234613202231012192129111825b=3451223451123455123445123結(jié)果解釋:a是原來的矩陣x按照行,每行從小到大重新排列得到的新矩陣。b告訴你重排的詳細(xì)信息,也就是做了什么樣的變動。例如b的第一行顯示34512,那么將原矩陣X的第一行的第34512個元素取出來,順次排列,就變成a矩陣的第一行

TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊
sort函數(shù)執(zhí)行時,會依次循環(huán)把數(shù)組里的兩個數(shù)傳遞給函數(shù)f,這時候f的參數(shù)a和b就分別是傳入的兩個數(shù),然后分別求出a和b除以2的余數(shù)(實(shí)際上就是判斷a和b是奇數(shù)還是偶數(shù),0是偶數(shù),1是奇數(shù))。如果a是偶數(shù),函數(shù)f就返回1(或其他任何大于0的數(shù)),如果a是奇數(shù)且b是偶數(shù)就返回-1(或其他任何小于0的數(shù))。sort函數(shù)根據(jù)f的返回值來對兩個數(shù)進(jìn)行排序,如果是大于0的數(shù),就把兩個數(shù)的值對調(diào),如果是0或小于0的數(shù)則不做任何處理。
這樣的話,當(dāng)數(shù)組中的所有元素都兩兩處理完畢后,最終就會形成奇數(shù)在前偶數(shù)在后的情況了

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊
排序過程其實(shí)就是按順序取兩個元素比較大小 以此作為排序標(biāo)準(zhǔn)
m n可以理解為每次從a數(shù)組中取的兩個元素 差值為正 則表示a大 排序結(jié)果就是由大到小排序
換成n-m就是由小到大排序 可以這樣記住(原因在于排序算法內(nèi)部,我們只要知道如何用就好)

TA貢獻(xiàn)1785條經(jīng)驗 獲得超8個贊
就是數(shù)組的前后兩個元素
sort方法中的函數(shù)返回負(fù)數(shù)表示m小于n,返回0表示等于,返回正數(shù)表示大于

TA貢獻(xiàn)2012條經(jīng)驗 獲得超12個贊
函數(shù)原型:
bool sort(array &$array[,int $sort_flag])
函數(shù)作用:
對數(shù)組$array進(jìn)行升序排列,排序后數(shù)組$array的鍵將被刪除,而且值將按照從小到大的順序重新排列。排序成功返回true,排序失敗返回false.至于函數(shù)原型中的[]表示參數(shù)項可選。升序排列是指動小到大的排列方式,對于數(shù)值來說直接很好理解,對于字符或者字符串來說則是按照a-z的順序。
函數(shù)中的兩個參數(shù),$array代表要排序的數(shù)組,前面加了運(yùn)算符&,表示參數(shù)是引用傳遞。參數(shù)$sort_flag用于指定排序的類型。
對于以下代碼:
<?php
$varSort = array("a" => "cat" , "b" => "mouse" , "c" => "dog"); //定義數(shù)組包含3個元素,均為字符串類型
sort($varSort);//對數(shù)組排序
print_r($varSort);//輸出
?>
以上代碼輸出結(jié)果是這樣的:
Array ( [0] => cat [1] => dog [2] => mouse )
因為此函數(shù)排序是從小到大的順序排列,對于字符串就是按照a-z的順序排列,所以得到的值的順序分別為cat(c開頭),dog(d開頭),mouse(m開頭)
而且此函數(shù)排序會刪除原有的鍵值,所以排序后鍵值為0,1,2

TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊
建議看php手冊英文版的。中文版是翻譯過來,一些內(nèi)容可能未包羅。
1、php手冊里關(guān)于sort函數(shù)的說明:
// sort_flags 默認(rèn)值是SORT_REGULAR
bool sort( array&$array [, int $sort_flags = SORT_REGULAR ] )
2、升序可以這么理解,按照字符的編碼來排序,或者說是按照ascii碼來排序的。
- 7 回答
- 0 關(guān)注
- 600 瀏覽
添加回答
舉報