package com.neusoft.www.bo;
import java.util.Scanner;
/**
*
* @function 实现数字输入,冒泡排序,输出
* @date 2014.02.28
*
*/
public class BubbleSortBO {
private Scanner input = new Scanner(System.in);
int[] oldArray;// 定义一个接收用户输入数字的数组
/**
* @function 接收用户输入数字的--自定义方法
* @return 返回旧数组
*/
public int[] inputNum() {
System.out.println("请输入要排序的数字个数:");
int size = input.nextInt();
oldArray = new int[size];
try {
for (int i = 0; i < oldArray.length; i++) {
System.out.print("请输入第 " + (i + 1) + "个数字: ");
oldArray[i] = input.nextInt();
}
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
System.out.println("error: 您输入的不是数字!");
return null;
}
return oldArray;
}
/**
* @function 冒泡排序--自定义方法
* @param nums
* 传递参数
*
* @return 返回一个冒泡排序后的新数组
*/
public int[] bubbleSortFun(int[] nums) {
if (nums == null) {
return null;
}
int[] newArray = new int[nums.length];// 定义新数组接收传递过来的数组值
for (int i = 0; i < nums.length; i++) {
newArray[i] = nums[i];
}
int temp = 0;// 定义一个临时变量,用来冒泡排序交换值
for (int i = 0; i < (newArray.length - 1); i++) {
for (int j = 0; j < (newArray.length - i - 1); j++) {
if (newArray[j] > newArray[j + 1]) {
temp = newArray[j];
newArray[j] = newArray[j + 1];
newArray[j + 1] = temp;
}
}
}
return newArray;
}
/**
* @function 打印输出结果--自定义方法
* @param oldArray1
* 旧数组
* @param newArray1
* 新数组
*/
public void printResult(int[] oldArray1, int[] newArray1) {
if (oldArray1 == null || newArray1 == null) {
System.out.println("您输入的不全是数字,请检查后重新输入!");
} else {
System.out.print("原来的数字序列是:");
for (int i = 0; i < oldArray1.length; i++) {
System.out.print(oldArray1[i] + " "); // 打印输出旧数组序列
}
System.out.println();// 换行
System.out.print("排好序的新数字序列是:");
for (int i = 0; i < newArray1.length; i++) {
System.out.print(newArray1[i] + " "); // 打印输出新数组序列
}
}
}
}
package com.neusoft.www.test;
import com.neusoft.www.bo.BubbleSortBO;
/**
*
* @function 实现冒泡排序
* @date 2014.02.28
*
*/
public class BubbleSortTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BubbleSortBO bsb = new BubbleSortBO();
int[] oldArray = bsb.inputNum();// 获取旧数组
int[] newArray = bsb.bubbleSortFun(oldArray);// 获取冒泡排序后的新数组
bsb.printResult(oldArray, newArray);// 打印输出新旧数组
}
}