您的位置:首页 > 编程语言 > Java开发

java排序,随机生成一个数组,对其进行排序,偶数在前奇数在后,偶数从小到大排,奇数从大到小排

2017-04-24 17:36 1391 查看
package demo01;

import java.util.Random;

/**

 *

 * @author sunzhen

 */

public class Demo01

{

  /**

   * @param args the command line arguments

   */

  public static void main( String[] args )

  {

    Demo01 demo = new Demo01();

    int n = 10;

    int num = 100;

    int[] b = demo.arr(n, num);

    demo.prints(b);//排序前

    demo.arrSort(b);//调用排序函数

    demo.prints(b);//排序后

  }

  /**

   * 随机生成一个数组

   *

   * @param n 数组长度

   * @param num 取值范围

   * @return a 随机数组

   */

  public int[] arr( int n, int num )

  {

    Random random = new Random();

    int[] a = new int
;

    for (int i = 0; i < a.length; i++)

    {

      int temp = random.nextInt(num);

      a[i] = temp;

    }

    return a;

  }

  /**

   * 以com()函数作为条件进行排序

   *

   * @param a 随机数组

   */

  public void arrSort( int[] a )

  {

    for (int i = 0; i < a.length; i++)

    {

      for (int j = 0; j <= i; j++)

      {

        if ( com( a[i], a[j] ))

        {

          int tem = a[i];

          a[i] = a[j];

          a[j] = tem;

        }

      }

    }

  }

  /**

   * 判断参数的奇偶、大小,决定是否交换位置

   *

   * @param a 数组中的某个值

   * @param b 数组中的某个值

   * @return

   */

  public boolean com( int a, int b )

  {

    if ((a % 2 == 0) && (b % 2 != 0))

    {

      return true;//奇数偶数交换

    }

    if ((a % 2 != 0) && (b % 2 == 0))

    {

      return false;//奇数偶数不交换

    }

    if ((a % 2 == 0) && (b % 2 == 0))

    {

      return a < b;//同为偶数小的在前

    }

    return a > b;//同为奇数大的在前

  }

  /**

   * 打印数组

   *

   * @param a 数组

   */

  public void prints( int a[] )

  {

    for (int i = 0; i < a.length; i++)

    {

      System.out.print("  " + a[i]);

    }

    System.out.println("");

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐