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("");
}
}
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("");
}
}
相关文章推荐
- java 给定一个字符串数组。按照字典顺序进行从小到大的排序。
- 编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果
- 利用随机类生成数组,并用冒泡排序以及选择排序对不同数组的元素进行从小到大的排序
- 传入一个数组进行排列,奇数在前升序,偶数在后降序,在程序执行中不能开辟新数组空间
- 华为:对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放,且输出数组第一位放奇数
- 1.将数组A中的内容和数组B中的内容进行交换。(数组一样大) 2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。 3.将三个数按从大到小输出。 4.求两个数的最大公约数。
- 将一个整形数组奇数排列在前偶数排列在后
- //写一个生成10个100以内随机数数据,再进行冒泡排序,顺序,//二分查找法找到一个值得位置,如果没有则为-1,有则返回数组位置
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- 以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
- 数组排序,奇数在前,偶数在后
- XX大型游戏公司笔试题之一 【 C++(揭秘很牛XX游戏公司的现 笔试题)整型随机数组奇偶排序(奇数从小到大,偶数从大到小)冒泡排序】
- 数组排序,奇数在前,偶数在后(二)
- Java中从[1,36]随机生成7个不重复的数字,放入一个数组中
- Java中对一个数组中的数字进行排序
- 如何把一个整型数组中,奇数偶数进行分离
- 【Java】编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置
- 百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
- java基础—对一个字符串中的数值进行从小到大的排序
- 首先 随机创建一个数组 然后对数组进行排序 后在进行二分查找