當我試圖按升序方式排列2個數組時,我被卡住了。 例如,我有:按升序排列2個數組 - C編程
X[] = {4,2,8,2}
Y[] = {12,12,6,12}
我想安排X []以升序,但如果我在陣列上改變的值的地方,對Y上的相同的值[]數組也將改變到一樣的地方。
結果:
X[] = {8,4,2,2}
Y[] = {6,12,12,12}
非常感謝!
當我試圖按升序方式排列2個數組時,我被卡住了。 例如,我有:按升序排列2個數組 - C編程
X[] = {4,2,8,2}
Y[] = {12,12,6,12}
我想安排X []以升序,但如果我在陣列上改變的值的地方,對Y上的相同的值[]數組也將改變到一樣的地方。
結果:
X[] = {8,4,2,2}
Y[] = {6,12,12,12}
非常感謝!
您探微得,排序時,在同一時間
這裏移動2個陣列元件是用冒泡排序一個爲例:(帶n
您的陣列的長度)
for(int last=0; last<n; last++)
{
for(int new=0; new<n-1; new++)
{
if(X[new]>X[new+1])
{
int temp = X[new+1];
X[new+1] = X[new];
X[new] = temp;
temp = Y[new+1];
Y[new+1] = Y[new];
Y[new] = temp;
}
}
}
就像這樣(在移動陣列元素的循環中複製)
非常感謝,乾淨,快速。 – David
選擇一個任意排序函數。例如氣泡排序。修改該功能,以便對兩者執行相同的操作。
void swap(long *a, long *b)
{
int t=*a;
*a=*b;
*b=t;
}
void bubble_sort(long list[], long n, long extra[])
{
long c, d, t;
for (c = 0 ; c < (n - 1); c++)
for (d = 0 ; d < n - c - 1; d++)
if (list[d] > list[d+1])
{
swap(list[d], list[d+1]);
swap(extra[d], extra[d+1]);
}
}
你的代碼在哪裏!?顯示你的代碼,我們試圖瞭解問題的位置。 –
@David不清楚你在問什麼。 –
_ascending order_ - >降序 – BLUEPIXY