A : 제목 설명
, 배열 번호의 순서를 조절하는 기능을 실현하기 위해, 정수의 배열을 입력 어레이의 전반의 모든 홀수 부분은 모든 짝수 어레이의 후반부에 위치되고,하면 그 홀수 및 짝수, 홀수 및 짝수 보장하는 것이 이러한 상수 간의 상대적 위치.
II는 : 주제 분석
도 호기심 순서를 조정 한 후 원래 순서로 같은 위치를 유지하는 데 필요한이 문제를주의한다.
그래서이 문제를 해결하기 위해 생각하면 버블 정렬과 유사하다하여도 모든 여행 후 거품의 마지막 요소의 위치를 결정합니다.
세 : 코드
public class Solution {
public void reOrderArray(int [] array) {
int temp=0;
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-1-i;j++){
if(array[j]%2==0&&array[j+1]%2==1){//如果j位是偶数并且j+1位是奇数则可以进行交换
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
}
테스트 결과는
변화가 후 넷째, 순서에 대한 상관 없어
시작했다, 나는 순서가 변경 순서 여부를 상관하지 않는다 후 전자가 충분히 짝수 홀수에있는만큼 코드를 썼다. 내 생각은 두 변수 각각 첫 번째 배열에서 첫 번째 횡단과 두 변수가 충족 될 때까지 카운트 다운이, 조정이 완료 될 때를 설정하는 것입니다.
V. 코드
public class Oddpreven {
public static int[] oddpreven(int[] array) {
int i = 0;
int j = array.length-1;
int temp = 0;
while (i < j) {//当连个变量相遇时,代表前后两部分都找完了
if (array[i] % 2 == 0) {//前边的变量指向了偶数
if (array[j] % 2 == 1) {//判断后边的是否指向了奇数
temp = array[i];//如果是,就交换位置
array[i] = array[j];
array[j] = temp;
i++;//两个变量同时在走一步
j--;
} else {
j--;//如果后边现在不是奇数的话,就接着往前找,前边偶数的先不动
}
} else {
i++;//前边没找到偶数就道标目前没有要交换的,继续走
}
}
return array;
}
public static void main(String []args) {
int[] array = {1, 2, 2,3,3,4,5,1,2,1};
oddpreven(array);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
VI. 테스트 결과