7 回答
TA貢獻1802條經驗 獲得超6個贊
怎么根據sort函數得到的索引來娑雜Φ耐計matlab
給你舉了例子:X=magic(5)X=17241815235714164613202210121921311182529>>[a,b]=sort(X,2)a=18151724571416234613202231012192129111825b=3451223451123455123445123結果解釋:a是原來的矩陣x按照行,每行從小到大重新排列得到的新矩陣。b告訴你重排的詳細信息,也就是做了什么樣的變動。例如b的第一行顯示34512,那么將原矩陣X的第一行的第34512個元素取出來,順次排列,就變成a矩陣的第一行。
TA貢獻1772條經驗 獲得超8個贊
sort函數執行時,會依次循環把數組里的兩個數傳遞給函數f,這時候f的參數a和b就分別是傳入的兩個數,然后分別求出a和b除以2的余數(實際上就是判斷a和b是奇數還是偶數,0是偶數,1是奇數)。如果a是偶數,函數f就返回1(或其他任何大于0的數),如果a是奇數且b是偶數就返回-1(或其他任何小于0的數)。sort函數根據f的返回值來對兩個數進行排序,如果是大于0的數,就把兩個數的值對調,如果是0或小于0的數則不做任何處理。
這樣的話,當數組中的所有元素都兩兩處理完畢后,最終就會形成奇數在前偶數在后的情況了。
TA貢獻1934條經驗 獲得超2個贊
排序過程其實就是按順序取兩個元素比較大小 以此作為排序標準
m n可以理解為每次從a數組中取的兩個元素 差值為正 則表示a大 排序結果就是由大到小排序
換成n-m就是由小到大排序 可以這樣記?。ㄔ蛟谟谂判蛩惴▋炔?,我們只要知道如何用就好)
TA貢獻1852條經驗 獲得超1個贊
函數原型:
bool sort(array &$array[,int $sort_flag])
函數作用:
對數組$array進行升序排列,排序后數組$array的鍵將被刪除,而且值將按照從小到大的順序重新排列。排序成功返回true,排序失敗返回false.至于函數原型中的[]表示參數項可選。升序排列是指動小到大的排列方式,對于數值來說直接很好理解,對于字符或者字符串來說則是按照a-z的順序。
函數中的兩個參數,$array代表要排序的數組,前面加了運算符&,表示參數是引用傳遞。參數$sort_flag用于指定排序的類型。
對于以下代碼:
<?php
$varSort = array("a" => "cat" , "b" => "mouse" , "c" => "dog"); //定義數組包含3個元素,均為字符串類型
sort($varSort);//對數組排序
print_r($varSort);//輸出
?>
以上代碼輸出結果是這樣的:
Array ( [0] => cat [1] => dog [2] => mouse )
因為此函數排序是從小到大的順序排列,對于字符串就是按照a-z的順序排列,所以得到的值的順序分別為cat(c開頭),dog(d開頭),mouse(m開頭)
而且此函數排序會刪除原有的鍵值,所以排序后鍵值為0,1,2
TA貢獻1828條經驗 獲得超6個贊
建議看php手冊英文版的。中文版是翻譯過來,一些內容可能未包羅。
1、php手冊里關于sort函數的說明:
// sort_flags 默認值是SORT_REGULAR
bool sort( array&$array [, int $sort_flags = SORT_REGULAR ] )
2、升序可以這么理解,按照字符的編碼來排序,或者說是按照ascii碼來排序的。
- 7 回答
- 0 關注
- 598 瀏覽
相關問題推薦
添加回答
舉報
