如題:實現(xiàn)要求,空間復雜度為o(1).
如果沒有這個要求的話八回,這個題目相信很多人都會手到擒來酷愧。
思路:既然空間復雜度為o(1),那就得充分利用數(shù)組自己的空間缠诅,在數(shù)組內(nèi)部進行元素的交換來達到目的溶浴,思路與快速排序類似,從左邊找到偶數(shù)管引,再從右邊找到奇數(shù)士败,進行交換,直到左右相遇褥伴。
上代碼:
void sort(int nums[], int count) {
if (count == 0) {
return;
}
int s = 0, e = count - 1;
while (s < e) {
while (nums[s] % 2 != 0 && s < e) {
s ++;
}
while (nums[e] % 2 == 0 && s < e) {
e --;
}
if (s == e) {
return;
}
int tem = nums[s];
nums[s] = nums[e];
nums[e] = tem;
}
}