二維數組sort排序


和副本任務完全無關的奇怪感慨:

完全搞不懂我為什么會在搞圖論的時候學這種奇怪東西,需要的時候不會,不需要的時候又莫名增加了奇怪的技能點.

之前的假期規划在十多天的放飛自我中徹底泡湯,簡單的圖論都一點不會,sad.
在想要不要把分治 貪心 遞推 哈希 大根小根堆再看一遍,我似乎又忘了.
劉神刷題比我快了,我應該好好學習不能這么浪.
大概我永遠沒有大神們的智商優勢吧,所以要更努力.
畢竟沒有貫徹意志的希望一無所有,所以努力成為hal一樣的綠燈俠吧少年[bushi].
 
好了回歸正題.
要想知道二維數組排序首先要知道二維數組的儲存方式;
比如說 int wtf[2][2];//↓下面的四個口代表一個int儲存位[雖然很不標准但是大概能理解吧]
口口口口 口口口口 口口口口 口口口口
↑wtf[0][0]           ↑wtf[0][1]          ↑wtf[1][0]        ↑wtf[1][1]
所以排序的時候就是先看行再看列
[就是把下面一行一行的按順序移到后面,一個 wtf[a][b]和一個 wtf[a*b]從某種意義上說是差不多的 ;
我個人是這么看的,所以你也可以覺得它是先看列再看行,不過我更希望內存是橫着排的...雖然這只是個比方]
 
然后我們開始學習怎么排序;
假如我們有一個 wtf[a][b]的int數組,我想把 wtf[x][0]到wtf[x][b-1]從小到大排序(0<=x<=a-1)
c++代碼如下
for(int i=0;i<=a-1;i++){
    sort((int*)wtf+b*i,(int*)wtf+b*i+b);
}
View Code

至於其他從大到小或者什么神奇的排序,自己定義一個mycmp放后面好了,就和普通排序一樣;

似乎還有 greater<int>()這種神奇的東西可以放在后面.
 
嗯至於怎么把 wtf[0][x]到wtf[a-1][x]排序,我不會...
 
數組課堂就到這里,雖然並沒有同學會看這么神經病的東西,但是還是感謝您的觀看,比心.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM