问题:数组中将奇数置后偶数置前
解决思路:
方法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; } }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。