分享

在Java数组中将数组中的奇数置后偶数置前(两种不同的方法实现)

 昵称70680357 2020-07-01

问题:数组中将奇数置后偶数置前
解决思路:
方法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; 
    } 
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多