Leetcode 905. 按奇偶排序数组
小于 1 分钟
题目描述:整形数组,把偶数调整到数组的左边,把奇数调整到数组的右边
void ajustArray(int arr[], int len) // 整形数组,把偶数调整到数组的左边,把奇数调整到数组的右边
{
int left = 0;
int right = len - 1;
while(left < right) {
while(left < right && (arr[right] & 0x01) == 1) {//位操作一定加括号
right--;
}
while(left < right && (arr[left] & 0x01) == 0) {
left++;
}
if(left < right) {
std::swap(arr[left],arr[right]);
left++;
right--;
}
}
}
int main() {
int arr[10] = {0};
srand(time(nullptr));
for(int i = 0; i < 10; i++) {
arr[i] = rand()%100;
}
for(auto i : arr) {
cout << i << " " ;
}
cout << endl;
ajustArray(arr, 10);
for(auto i : arr) {
cout << i << " " ;
}
cout << endl;
return 0;
}
位操作判断奇偶性比
x%2 == 1
要快,但是!!!