码迷,mamicode.com
首页 > 编程语言 > 详细

将数组的奇数放在左边,偶数放在右边

时间:2019-11-06 15:22:06      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:for   code   print   pre   swap   nbsp   初始   reac   int   

/**
 *  使用两个指针i和j,初始化均为0。然后j往后遍历,若遇到了奇数,则将 A[j] 和 A[i] 交换位置,同时i自增1,这样操作下来,同样可以将所有的偶数都放在奇数前面
 *
 */
public class SortArrayByParity {

    
    public static void main(String[] args) {
        
        int [] arr = new int[] {2,3,4,5,6,7,8,9,10,12,14,15,16,17};
        sort(arr);
        Arrays.stream(arr).forEach(s -> System.out.print(s+ " "));
    }
    
    
    public static void sort(int [] arr) {
        int i = 0 ;
        for(int j = 0 ; j < arr.length ; j ++) {
            if(arr[j] % 2 == 1 ) {
                swap(j,i,arr);
                i++;
            }
        }
    }
    
    public static  void swap(int a , int b , int [] arr) {
        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp; 
    }
}

 

将数组的奇数放在左边,偶数放在右边

标签:for   code   print   pre   swap   nbsp   初始   reac   int   

原文地址:https://www.cnblogs.com/moris5013/p/11805110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!