배열 순 서 를 조정 하여 홀수 가 짝수 앞 에 있 도록 합 니 다.
: , , , 。
: , , , , 。 , , 。 。 o(n)。 :#include<iostream>
using namespace std;
void reorderOddEven(int arr[], int len)
{
int j = -1;
for(int i = 0; i < len; ++i)
{
if(arr[i] & 1)//
{
swap(arr[i],arr[j + 1]);
j++;
}
}
}
int main(void)
{
int arr[] = {3, 4, 5, 6, 1, 2};
reorderOddEven(arr,6);
system("pause");
return 0;
}
방법 3: 방법 1 과 방법 2 의 확장 성 이 높 지 않다. 만약 에 우리 가 배열 의 수 를 양수 와 음수 에 따라 나 누 라 고 요구 하거나 우 리 는 3 의 배수 와 3 이 아 닌 배수 에 따라 나 누 라 고 요구한다.우 리 는 또 두 기능 의 차이 가 많 지 않 은 함 수 를 정의 해 야 한다.이때 우 리 는 하나의 기준 만 정의 하면 된다.이렇게 해서 우 리 는 전체 함 수 를 두 부분 으로 분해 하 는데, 하 나 는 숫자 가 배열 의 앞부분 에 있어 야 하 는 지, 아니면 후반 부분 에 있어 야 하 는 지 를 판단 하 는 것 이다.둘 째 는 분할 배열 작업 이다.우 리 는 함수 지침 을 사용 하여 한다void reorderOddEven(int arr[],int len)
{
int index1 = 0;//
int index2 = len - 1;//
while(index1 < index2)//
{
if(arr[index1] & 1)// ,
{
index1++;
}
else if((arr[index2] & 1) == 0)// ,
{
index2--;
}
else// , ,
{
swap(arr[index1],arr[index2]);
index1++;
index2--;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.