[問題] qsort能用在二維array嘛?

看板C_and_CPP作者 (懶)時間14年前 (2010/07/09 09:39), 編輯推噓6(6011)
留言17則, 6人參與, 最新討論串1/2 (看更多)
我現在有一個二維array A[10][10] 我想把A[0], A[1], A[2].... A[9]利用qsort去做排序 qsort( A, 10, sizeof(*A), compare ); 請問這樣寫的問題在哪邊...? -- ╔╮ ╭═╦╮╭═╦╗╮ ╮╔══╮╭═╦╮╮ ╔╮╔══╮╭══╮ ╠╣ ╠═╬╣╭╬╩╯╰╦╦╯╠═╦╮║ ╠╣║║╠╣╠╣ ╰═╦╮ ╠╣ ╭║ ╠╣║╰╔╗ ╠╣ ║ ╠╣║ ╠╣║╰╠╣║╰╔╗║ ╠╣ ╰╩═╯╰ ╰╝╚═╩╯ ╰╝ ╚═╩╯╰═╩╯╰ ╰╝╚═╩╯╰═╩╯ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.98.224

07/09 12:51, , 1F
這樣會排序 A[0][0]~A[0][9] 吧?
07/09 12:51, 1F

07/09 12:53, , 2F
我比較好奇sizeof(*A)的值會是多少…
07/09 12:53, 2F

07/09 12:59, , 3F
這裡*A會算出array A[10]的結果, size來看應該是還好...
07/09 12:59, 3F

07/09 13:00, , 4F
問題是, A[0]~[9]的值又不能交換甚至不能重新賦值,
07/09 13:00, 4F

07/09 13:01, , 5F
小弟我不太懂原po是想怎麼排序法; 如果是 *A[10] 這樣
07/09 13:01, 5F

07/09 13:02, , 6F
的form可能還可以排, 但是必須搭動態配置, 也要自己算
07/09 13:02, 6F

07/09 13:02, , 7F
大小不能夠直接sizeof....@_@"
07/09 13:02, 7F

07/09 13:03, , 8F
如果只是想各別把A[0]~A[9]的內容各自排序好, 那應該
07/09 13:03, 8F

07/09 13:03, , 9F
是要跑迴圈做10次qsort, 傳的參數也要跟著修改....
07/09 13:03, 9F

07/09 14:58, , 10F
把x[10][10]變成x[100]
07/09 14:58, 10F

07/10 10:23, , 11F
記得很久以前不知在哪處看到方陣排序法應該可用. 先把單數列
07/10 10:23, 11F

07/10 10:24, , 12F
由小向大排,雙數列由大向小排,再來把每行由小向大排,然後
07/10 10:24, 12F

07/10 10:25, , 13F
從做一次...做到一個限定次數,就可以排好.原文獻請人神一下.
07/10 10:25, 13F

07/10 10:43, , 14F
回V大, 因為 swap 的時候是每個 byte 的資料互換, 沒
07/10 10:43, 14F

07/10 10:43, , 15F
有直接賦值的行為
07/10 10:43, 15F

07/10 21:26, , 16F
哈哈~~的確是小弟我忽略了直接把整條A[i/j]的data通通
07/10 21:26, 16F

07/10 21:26, , 17F
交換的case了....orz
07/10 21:26, 17F
文章代碼(AID): #1CDdt5hI (C_and_CPP)
文章代碼(AID): #1CDdt5hI (C_and_CPP)