華為2012校園招聘機試第二道 陣列重新排序問題

2021-05-28 07:34:26 字數 1254 閱讀 2676

題目要求:給定乙個陣列input ,如果陣列長度n為奇數,則將陣列中最大的元素放到 output 陣列最中間的位置,如果陣列長度n為偶數,則將陣列中最大的元素放到 output 陣列中間兩個位置偏右的那個位置上,然後再按從大到小的順序,依次在第乙個位置的兩邊,按照一左一右的順序,依次存放剩下的數。本題**在vc++0.6上通過。

例如  3, 6, 8, 2, 22, 59

2, 6, 22, 59, 8, 3

#include

using namespace std;

void sort(int input, int n, int output)

} if(0 == flag)

break;

}      

//也可以使用其他優化的排序方法,這裡使用最基本的冒泡。

for(i = 0; i < n; i++)

cout<

cout<

for(i = 1; i <= n; i++)

//仔細分析題目要求,可以發現相應的規律,只需要三行**就可以實現。

}

int main()

;  

int output[sizeof(input)/sizeof(input[0])]; 

for(i = 0; i < (sizeof(input)/sizeof(input[0])); i++)

cout<

cout<

sort(input, sizeof(input)/sizeof(input[0]), output);  

for(i = 0; i < sizeof(input)/sizeof(input[0]); i++)

cout<

cout<

return 0;

}

2012屆華為校園招聘機試題

int cal score int score,int judge type,int n else 大眾評委 if 0 publicnum 沒有大眾評委 else 2 給定乙個陣列input 如果陣列長度n為奇數,則將陣列中最大的元素放到 output 陣列最中間的位置,如果陣列長度n為偶數,則將陣...

2012屆華為校園招聘機試題

int cal score int score,int judge type,int n else 大眾評委 if 0 publicnum 沒有大眾評委 else void sort int input int n int output for mid n 1 j mid 1 k mid 1 out...

2012華為校園招聘機試(成都) 2

第二道 對乙個陣列,將陣列中偶數從大到小排序,奇數從小到大排序,奇數和偶數交叉著放且輸出陣列第一位放奇數 若奇數和偶數不等長,則把剩下的直接放到陣列中。思路 先進行奇偶判斷,得到奇數和偶數陣列。然後對兩陣列排序,進行長度判斷,最後組織資料。include includevoid jiou int a...