도록 배열 순서를 조절할 [소는 쿠폰 오프 안전성을 증명할 즉 짝수 홀수 앞

링크 : HTTPS : //www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593

제목 : 배열 번호의 순서를 조절하는 기능을 실현하기 위해, 정수의 배열을 입력하도록 배열의 전반부, 모든 짝수 어레이의 후반부에 위치하고 있으며, 홀수 및 짝수 짝수 및 짝수 사이되도록 모든 홀수 부분 상대 위치 변경.

 

아이디어 : 공간에 대한 시간조차 보존의 배열 연은 원래 배열의 꼬리에 원래 배열, 임시 배열에 저장되어있는 짝수 왼쪽에 이상한 움직임, 그리고 마지막으로, 심지어 임시 배열을 검사합니다.

 

예를 들면

광원 어레이 {3,4,5,7,8,2,9}

시작은 이것이다 :

왼쪽에서 오른쪽으로 스캔, 첫 번째 숫자는 (실제 장소) 삽입 포인터로 (3)를 넣어 세 홀수이며, 그리고 오른쪽에 삽입 포인터 이동, 주사 포인터는 오른쪽으로 이동한다.

그래서 :

 

이제 4 스캔, 짝수, 임시 배열에 넣어, 앞으로 스캔 포인터입니다.

 그래서 :

 

현재 스캔 5, 5에 삽입 포인터를 배치하고 오른쪽에 삽입 포인터를 이동 홀수 주사 포인터는 오른쪽으로 이동한다.

그래서 :

7 스캔 홀수 7에 삽입 포인터를 배치하고 오른쪽에 삽입 포인터를 이동 주사 포인터는 오른쪽으로 이동한다.

그래서 :

이제 8 스캔, ​​짝수, 임시 배열에 넣어, 앞으로 스캔 포인터.

그래서 :

그리고 :

마지막으로 :

지금까지, 왼쪽은 홀수를 완료하고도 선출했다.

원래의 배열에 임시 배열하더라도 다음 일 수있다.

 

코드

 1 /**
 2  * @author yuan
 3  * @version 0.1
 4  * @date 2019/6/6
 5  */
 6 public class ReOrderArray {
 7 
 8     public static void print(int[] array) {
 9         for (int i = 0; i < array.length; i++) {
10             System.out.print(array[i]);
11             if (i == array.length - 1) {
12                 System.out.println();
13             } else {
14                 System.out.print(" ");
15             }
16         }
17     }
18 
19     public static void reOrderArray(int[] array) {
20         // 保存偶数
21         int[] temp = new int[array.length];
22         // 当前偶数数量
23         int count = 0;
24         // 当前填入位置,第一轮for循环用于奇数左移,第二轮用于填入偶数
25         int pos = 0;
26         for (int i = 0; i < array.length; i++) {
27             if ((array[i] & 1) == 0) {
28                 temp[count++] = array[i];
29             } else {
30                 array[pos++] = array[i];
31             }
32         }
33         for (int i = 0; i < count; i++) {
34             array[pos++] = temp[i];
35         }
36     }
37 
38     public static void main(String[] args) {
39         int[] array = new int[]{3, 4, 5, 7, 8, 2, 9};
40         print(array);
41         reOrderArray(array);
42         print(array);
43     }
44 }

 

추천

출처www.cnblogs.com/null-0/p/10988709.html