給定乙個整數陣列,將陣列中小於零的數都放在最左邊,等於0的放在中間,小於零的放在最右邊。
**如下:
void swap(int* a,int* b)
void arrangarray(int* startpos,int* endpos)
//迴圈結束時,low一定等於high,且指向大於等於0的數
//step2,從low開始,將等於0的數移動到左邊,大於0的數移動到右邊
high = endpos;
while(low < high) }
int main()
; arrangarray(array,array + 9);
}
微軟面試題目答案
第一組題答案 1 三根繩,第一根點燃兩端,第二根點燃一端,第三根不點 第一根繩燒完 30分鐘 後,點燃第二根繩的另一端,第二根繩燒完 45分鐘 後,點燃第三根繩子兩端,第三根繩燒完 1小時15分 後,計時完成 2 根據抽屜原理,4個 3 3公升裝滿 3公升 5公升 全注入 3公升裝滿 3公升 5公升...
微軟筆試面試題目
智力題 1 燒一根不均勻的繩子,從頭燒到尾總共需要1個小時,問如何用燒繩子的方法來確定半小時的時間呢?2 10個海盜搶到了100顆寶石,每一顆都一樣大小且價值連城。他們決定這麼分 1 抽籤決定自己的號碼 1 10 2 首先,由1號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案進...
微軟面試題(二)
26 用一種演算法使通用字串相匹配。27 顛倒乙個字串。優化速度。優化空間。28 顛倒乙個句子中的詞的順序,比如將 我叫克麗絲 轉換為 克麗絲叫我 實現速度最快,移動最少。29 找到乙個子字串。優化速度。優化空間。30 比較兩個字串,用o n 時間和恒量空間。31 假設你有乙個用1001個整數組成的...