0
如果我有一個數組A和一個數組B,是否有辦法使用qsort()對數組A進行排序,並且同時根據A的元素對B的所有元素進行排序?例如,如果A = {4,3,2,1}並且B = {1,2,3,4},那麼在排序之後他們是這樣的:使用qsort根據一個排序兩個數組?
A = {1,2,3, 4}和B = {4,3,2,1}
如果我有一個數組A和一個數組B,是否有辦法使用qsort()對數組A進行排序,並且同時根據A的元素對B的所有元素進行排序?例如,如果A = {4,3,2,1}並且B = {1,2,3,4},那麼在排序之後他們是這樣的:使用qsort根據一個排序兩個數組?
A = {1,2,3, 4}和B = {4,3,2,1}
假設問題不是duplicate,我想你想根據它在A中排序的順序對B進行排序。我假設A是在對它重新排序之前進行排序。如果這確實是一個有效的假設,你必須提供。
一個非常簡單的解決方案可能是確定A中的順序,如果i> j和A [i]> A [j],您可以選擇兩個下標i,j,您可以說其升序爲下降。
然後,用它來定義比較功能於B.
使用int compare (const void * a, const void * b)
{
return (*(int*)a - *(int*)b);
}
qsort (B, sizeof(B)/sizeof(int), sizeof(int), compare);