不引入新的陣列,實現陣列元素交換位置函式

2021-06-22 23:05:04 字數 646 閱讀 8458

最近遇到一道c++的面試題,要求不引入新的陣列,實現陣列元素交換位置函式,看似挺簡單的,卻還是花費了我不少時間,這裡記錄下來,給大家乙個簡單的思路。題目的詳細要求是:

不引入新的陣列,實現陣列元素交換位置函式:void swap(int a, int m, int n);比如,設m為3,n為4,a中的資料為:1 2 3 4 5 6 7,函式執行後,a中的資料為:4 5 6 7 1 2 3。

這裡的關鍵是不引入新的陣列,而且盡量使用較少的額外變數。我的思路是採用「倒敘追蹤法」,利用乙個額外變數進行兩個數的swap。貼一下**,大家有什麼更好的方法可以交流一下。

#include

using namespace std;

int judge_pos(int i,int m,int n)

else

}int main()

cout << "input m and n,separate with space; " << endl;

cin >> m >> n;

int i = 0;

while(i_array[i]>=0)

else}}

}for(int i=0;i

cout << i_array[i] << " ";

}return 0;

}

不引入新的陣列,實現陣列元素交換位置函式

最近遇到一道c 的面試題,要求不引入新的陣列,實現陣列元素交換位置函式,看似挺簡單的,卻還是花費了我不少時間,這裡記錄下來,給大家乙個簡單的思路。題目的詳細要求是 不引入新的陣列,實現陣列元素交換位置函式 void swap int a,int m,int n 比如,設m為3,n為4,a中的資料為 ...

C語言 函式實現一維陣列的元素交換順序

最近在做演算法作業,要用c去實現,雖然內心是崩潰食xiang的,但還是抑制住了退課的衝動 這裡記錄一下乙個小情景的實現。要用c語言定義乙個swap函式實現一維陣列的元素交換順序。因為涉及到陣列 指標 函式傳參這三個概念,所以儲存一下警示自己。include include define n 10 i...

簡單的陣列元素交換 除錯的重要性

這個見到那的陣列元素交換折騰了我倆小時,並不是因為這個問題有多難,而是因為我在寫判斷條件的時候把i寫成了1,檢查了好久也沒看出來。哎,自己寫的程式就像親兒子,咋看咋順眼。就是找不出錯誤!這次折騰的我開始使用除錯,儘管還不太熟練,多練練肯定能掌握技巧。include int main int arr2...