import java.lang.Math;
import java.util.Random;
/**
* 冒泡排序
* 该程序先随机生成一个长度为10,并且数值在10-210之间的数组
* 然后通过冒泡的方法对生成的数组进行排序并从控制台输出。
*
*/
public class SortTest {
/**
* 升序标志
*/
public static final int SHENGXU=1;
/**
* 降序标志
*/
public static final int JIANGXU=2;
/**
* 主函数
* @param args
*/
public static void main(String args[]) {
SortTest.execSort(JIANGXU);
}
/**
* 交换值,交换数组的两个值
* @param array 操作的数组
* @param i 第一个
* @param j 第二个
*/
private static void jiaohuan(int[] array,int i, int j)
{
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
/**
*
* @param method
* 1为升序,2为降序
*/
public static void execSort(int method) {
int[] array = null;
array = initArray(10, 210, 10);
int[] orderarray = maopao(array,method);
for (int i = 0; i < orderarray.length; i++) {
System.out.println(orderarray[i]);
}
}
/**
* 取随机数据,初始化一个数组
*
* @param min
* 随机数的最小值
* @param max
* 最大值
* @param size
* 取得随机数的数量
* @return
*/
public static int[] initArray(int min, int max, int size) {
int[] init = new int[size];
for (int i = 0; i < size; i++) {
init[i] = min + (int) (Math.random() * (max - min + 1));
System.out.println(i + "-------" + init[i]);
}
return init;
}
/**冒泡排序方法
* 原理:从最后一个开始将小的或大的逐渐冒出
* @param array
* @param method
* @return
*/
public static int[] maopao(int[] array,int method)
{
for(int i=0;i
for (int j=array.length -1 ;j>i;j--)
{
if (method==2)
{
if (array[i] < array[j])
jiaohuan(array,i,j);
}else if (method==1)
if (array[i] > array[j])
jiaohuan(array,i,j);
}
}
return array;
}
}