问题:数组中将奇数置后偶数置前 解决思路: 方法1. 使用双重for循环,一层从前往后找奇数,另一一层从后往前找偶数,如果找到了使用中间变量交换两个的值,最终实现偶数在前基数在后。
源代码:
public class TransForm {
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13};
transForm(array);
for (int x : array) {
System.out.println(x);
}
}
public static int[] transForm(int[ ] array){
for (int i = 0; i <=array.length/2 ; i++) {
for (int j = array.length-1;j>=array.length/2 ; j--) {
if(array[i]%2!=0&&array[j]%2==0){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
方法2: 使用双重while循环,一层从前往后找奇数,另一一层从后往前找偶数,如果找到了使用中间变量交换两个的值,最终实现偶数在前基数在后。
源代码:
语言 |
方法 |
4136 |
Zin3A18763 |
lh6B0 |
别人看不到我作品 |
5181 |
2010.01.24 17-29-52 |
public class TransForm2 {
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13};
transForm(array);
for (int x : array) {
System.out.println(x);
}
}
public static int[] transForm(int[] array){
int left = 0;
int right = array.length-1;
while(left<right){
while(left<right&&array[left]%2==0){
left++;
}
while(left<right&&array[right]%2!=0){
right--;
}
int temp = array[left];
array[left] = array[right];
array[right] = temp;
}
return array;
}
}
|