java:将一维数组中奇数放左边偶数放右边

算法思想

  1. 比较第一个数,如果是奇数则判断第二个数,如果第二个数是偶数,则判断倒数第一个数是偶数则,判断倒数第二个数是奇数,则完成交换,并将下次判断的值缩小.算法效率为n.
     1 package com.itheima.kuihuabaodian;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Case01 {
     6     public static void main(String[] args) {
     7         Scanner num = new Scanner(System.in);
     8         int[] arr1=new int[10];
     9         for (int i = 0; i < 10; i++) {
    10             System.out.println("请输入第"+i+"个整数");
    11             arr1[i]=num.nextInt();
    12         }
    13 
    14         for (int element :
    15                 OddLeft(arr1,10)) {
    16             System.out.println(element);
    17         }
    18     }
    19     public static int[] OddLeft(int[]arr,int n){
    20         int i=0;
    21         int j=arr.length-1;
    22         int temp;
    23         while (i<j){
    24             while (arr[j]%2==0 && j>i ){
    25                 j--;
    26             }
    27             while (arr[i]%2!=0 && i<j){
    28                 i++;
    29             }
    30             temp=arr[i];
    31             arr[i]=arr[j];
    32             arr[j]=temp;
    33         }
    34         return arr;
    35     }

     

  2. 直接判定最后数组中最后一个元素,如果是奇数则和第一个元素交换,如果是偶数则判断倒数第二个元素,算法效率=数组所有元素的阶乘;
     1 package com.itheima.exercise;
     2 
     3 public class OddLeft {
     4     public static void main(String[] args) {
     5         int[] arr1={2,2,3,4,5,6,7,8,9,10};
     6         for (int ele :
     7                 OddLeft(arr1)) {
     8             System.out.println(ele );
     9 
    10         }
    11     }
    12 
    13     //这个算法是用最后一项的值来比较前一项前一项
    14     // 循环每进行一次就比较一下,效率低下
    15     public static int[] OddLeft(int[]arr){
    16         int temp;
    17         for (int i = 0; i ) {
    18             for (int j = arr.length-1; j >i; j--) {
    19                 if(arr[j]%2!=0){
    20                     temp=arr[j];
    21                     arr[j]=arr[i];
    22                     arr[i]=temp;
    23                 }
    24 
    25             }
    26 
    27         }
    28         return arr;
    29     }
    30 }

     

     

 

你可能感兴趣的:(java:将一维数组中奇数放左边偶数放右边)