정수 배열 을 입력 하고 배열 의 숫자 순 서 를 조정 하여 모든 홀수 가 배열 의 앞부분 에 있 고 모든 짝수 가 배열 의 후반 부분 에 있 습 니 다.

2762 단어 알고리즘
제목.
하나의 정수 배열 을 입력 하고 배열 의 숫자 순 서 를 조정 하여 모든 기 수 를 배열 의 전반 부분 에 위치 하 게 합 니 다. 모든 짝수 는 배열 의 후반 부분 에 위치 하고 속도 가 빠 를 수록 좋 으 며 필요 한 추가 공간 이 작 을 수록 좋 습 니 다.
풀다.
static void paixu(int[] arr,int n){
        if(n==0||n==1){
            return;
        }

        int i=0;
        int j=n-1;
        int temp;
        while(iif(arr[i]%2==1){
                i++;
                continue;
            }

            if(arr[j]%2==0){
                j--;
                continue;
            }

            temp=arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
            i++;
            j--;
        }

    }

최적화 알고리즘 (비트 연산 이용)
기수 와 1 의 비트 연산 은 1 이 고, 짝수 와 1 의 비트 연산 은 0 이다.
public void paixu(int[] nums){
        int len=nums.length;
        if(len<2){
            return;
        }

        int i=0;
        int j=len-1;
        int temp=0;
        while(iif((i&1)==1){
                i++;
                continue;
            }           
            if((j&1)==0){
                j--;
                continue;
            }

            temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
            i++;
            j--;            
        }       
    }

좋은 웹페이지 즐겨찾기