特判排序:
看看以下cmp寫法,猜想作用:
該函數作用就是“將正數升序排列, 負數排到最后”
我認為cmp函數的一個特性就是, 如果return false, 那么函數就會將他們互換位置, return true就會保持原來位置不變。
所以這函數可以解讀為:
x是前面的元素, y是后面的元素。
①如果x<0的話,就是p1是負數,return false,直接交換
②x>0 y <0 那么正數已經在負數后面了,return true,不需要動。
③x>0 && y > 0 那么就按升序排列, return x.a < y.a
假設有10個數:0 8 9 4 -4 4 -2 2 -7 -4。
運行以上代碼:
如果需要對負數部分也進行排列,可以加上這一行。
二級排序:
然后再給出一個cmp二級排序的寫法