안전 배열이 조정 시퀀스가 짝수 홀수 앞에 위치하고 있습니다 증명

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)==0vec[i]&1==0의 차이점은 무엇입니까? 잊지 마세요.
요소의 보장 상대적인 순서가 빠른 정렬에 사용 할 수 없습니다 경우 (2) partition운영.

게시 32 개 원래 기사 · 원의 칭찬 0 · 조회수 (416)

추천

출처blog.csdn.net/weixin_43951240/article/details/103948774