1. 주제
배열 번호의 순서를 조절하는 기능을 실현하기 위해, 정수의 배열을 입력 어레이의 전반의 모든 홀수 부분은 홀수 어레이 전체의 후반에있는 홀수 간의 상대적 짝수, 홀수되도록 심지어 지도록 동일한 위치.
출처 : 안전 제공 입증
링크 : https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
2. 내 문제 솔루션
(1)은 안정적으로 정렬 삽입 정렬 버블 정렬 병합 정렬 알고리즘을 분류하는 것은 이러한 문제를 해결하는 것을 배울 수있다.
시간 복잡도 : O(n^2)
공간적 복잡도 : O(1)
(2) 보조 어레이 원의 배열을 통해 우선 탐색 홀수 차수의 보조 배열로 추출하고 이송 다시 원래의 배열은 짝수 위해 보조 배열로 추출하고, 최종적으로 보조 배열 할당되고 원래의 배열.
시간 복잡도 : O(n)
공간의 복잡성 :O(n)
보조 어레이에 데이터를 복사하고 원래의 배열의 값을 변경하거나, 원래의 배열에 복사 한 후 보조 배열의 값을 변경하기 위해서는 동일하다.
class Solution {
public:
void reOrderArray(vector<int> &array) {
vector<int> vec(array.begin(),array.end());
int num=0;
for(int i=0;i<array.size();i++)
if(vec[i]&1)array[num++]=vec[i];
for(int i=0;i<array.size();i++)
if((vec[i]&1)==0)array[num++]=vec[i];
}
};
다른 3. 누군가가 문제의 해결책
4. 요약 및 반사
(1) (vec[i]&1)==0
과 vec[i]&1==0
의 차이점은 무엇입니까? 잊지 마세요.
요소의 보장 상대적인 순서가 빠른 정렬에 사용 할 수 없습니다 경우 (2) partition
운영.