看板 C_and_CPP 關於我們 聯絡資訊
我現在有一個二維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
netsphere:這樣會排序 A[0][0]~A[0][9] 吧? 07/09 12:51
aecho:我比較好奇sizeof(*A)的值會是多少… 07/09 12:53
VictorTom:這裡*A會算出array A[10]的結果, size來看應該是還好... 07/09 12:59
VictorTom:問題是, A[0]~[9]的值又不能交換甚至不能重新賦值, 07/09 13:00
VictorTom:小弟我不太懂原po是想怎麼排序法; 如果是 *A[10] 這樣 07/09 13:01
VictorTom:的form可能還可以排, 但是必須搭動態配置, 也要自己算 07/09 13:02
VictorTom:大小不能夠直接sizeof....@_@" 07/09 13:02
VictorTom:如果只是想各別把A[0]~A[9]的內容各自排序好, 那應該 07/09 13:03
VictorTom:是要跑迴圈做10次qsort, 傳的參數也要跟著修改.... 07/09 13:03
kaiwae:把x[10][10]變成x[100] 07/09 14:58
yauhh:記得很久以前不知在哪處看到方陣排序法應該可用. 先把單數列 07/10 10:23
yauhh:由小向大排,雙數列由大向小排,再來把每行由小向大排,然後 07/10 10:24
yauhh:從做一次...做到一個限定次數,就可以排好.原文獻請人神一下. 07/10 10:25
loveme00835:回V大, 因為 swap 的時候是每個 byte 的資料互換, 沒 07/10 10:43
loveme00835:有直接賦值的行為 07/10 10:43
VictorTom:哈哈~~的確是小弟我忽略了直接把整條A[i/j]的data通通 07/10 21:26
VictorTom:交換的case了....orz 07/10 21:26