/**
*冒泡排序算法,在一个数组中使得其按照大小顺序排序输出
*@author LZ
*@vesion 2014.6.7
*/
//创建冒泡排序算法的类
class BubbleSort
{
//此类是一个充血模型
/**
*无参的构造方法
*@param 无
*@return 无
*/
public BubbleSort(){}
/**
*写一个方法BubbleSort_action()来操作排序算法
*@param int[] sort
*@return int[]
*/
public int[] BubbleSort_action(int[] sort){
//调用OutPut(),输出未经排序的元素
System.out.println("未经冒泡排序的结果:");
OutPut(sort);
//判断传入的参数是否合法
if(sort == null ||sort.length <= 0){
System.out.println("参数sort或数组中无元素!");
}
//调用交换方法实现交换操作
swap(sort);
//调用OutPut(),输出排序后的元素
System.out.println("冒泡排序后的结果:");
OutPut(sort);
return sort;
}
/**
*写一个实现交换的代码
*@param int[] sort
*@return 无
*/
public void swap(int[] sort){
/**
*算法:冒泡排序算法
*int o_num 表示外层比较所处的次数
*int i_num 表示内层仍需比较所处的次数
*/
int o_num =0;
int i_num =0;
//定义一个整型的变量来短暂的存储交换时候的值
int temp = 0;
outer:
for(o_num = 0;o_num < sort.length-1 ;o_num++){
//内层循环
inner:
for(i_num = 0;i_num <sort.length-o_num-1;i_num++){
//冒泡排序,轻的冒起来
if(sort[i_num] > sort[i_num+1]){
//实现交换的代码
temp = sort[i_num];
sort[i_num] = sort[i_num +1];
sort[i_num+1] = temp;
}
}
}
/** System.out.println(">>>>>>>>");
*for(int i = 0;i < 9 ;i++){
* System.out.println(sort[i]);
*
*}
*System.out.println("i_num="+i_num+"o_num="+o_num+"length = "+sort.length);
*/
if(o_num == sort.length){System.out.println("冒泡成功!");}
}
/**
*写一个方法OutPut()输出排序前后的元素
*@param int[] sort
*@return 无
*/
public void OutPut(int[] sort){
//定义一个整型变量记录输出位置
int i ;
//输出数组中保存的元素
for(i = 0;i <sort.length ;i++){
System.out.println(sort[i]+" ");
}
System.out.println("元素个数为:"+sort.length);
}
}