package huawei.exam;
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] str={1,4,2,8};
BubbleSort obj=new BubbleSort();
System.out.println(obj.Bubble(str));
}
//冒泡算法是从后往前计算的,大的数字就像大的泡泡一样,跑到后面去了啊。
public String Bubble(int[] str){
int temp=0;
String result="";
for(int i=str.length-1;i>=0;--i){
for(int j=0;j<i;++j){
if(str[j+1]<str[j]){
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
//for(int i=0;i<str.length;i++)
result+=str;
return result;
}
}
上面程序其实在数据转换方面存在一点点问题。如何把Int型数组转换成String类型的。
在师弟的帮忙下,程序有点回转,但是不是解决了上面那个问题。在子函数Bubble(int[] str)传参数的过程,老是会粗线问题。并且,Int型的数组,如果想要打印出来,只能一个一个打印。除非把int型数组转换成String,但是采用str.toString();还是粗现问题。并且静态方法只能调用静态变量,不能调用全局变量。
package huawei.exam;
public class BubbleSort {
/**
* @param args
*/
static int str[]={1,4,2,8};
public static void main(String[] args) {
// TODO Auto-generated method stub
//int[] str={1,4,2,8}; //定义一个整型的数组变量。
System.out.println("初始化前的排序数组为:");
for(int i = 0;i < str.length;++i)
System.out.println(str[i]);
BubbleSort obj=new BubbleSort();
obj.Bubble();
for(int i = 0;i < str.length;++i)
System.out.println(str[i]);
}
//冒泡算法是从后往前计算的,大的数字就像大的泡泡一样,跑到后面去了啊。从小到大排序。
public String Bubble(){
int temp=0;
// System.out.println("初始化前的排序数组为:"+str);
for(int i=str.length-1;i>=0;--i){
for(int j=0;j<i;++j){
if(str[j+1]<str[j]){
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
return str.toString();
}
}
把int[] str={};数组重新变为main()方法里的一个局部变量,此时程序也可以正常运行了。最终程序代码如下:
1 package huawei.exam; 2 3 public class BubbleSort { 4 5 /** 6 * @param args 7 */ 8 //static int str[]={1,4,2,8}; 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11 12 int[] str={1,4,2,8}; //定义一个整型的数组变量。 13 System.out.println("排序前的排序数组为:"); 14 for(int i = 0;i < str.length;++i) 15 System.out.println(str[i]); 16 BubbleSort obj=new BubbleSort(); 17 obj.Bubble(str); 18 System.out.println("排序后的排序数组为:"); 19 for(int i = 0;i < str.length;++i) 20 System.out.println(str[i]); 21 22 } 23 //冒泡算法是从后往前计算的,大的数字就像大的泡泡一样,跑到后面去了啊。从小到大排序。 24 public String Bubble(int[] str){ 25 int temp=0; 26 // System.out.println("初始化前的排序数组为:"+str); 27 for(int i=str.length-1;i>=0;--i){ 28 for(int j=0;j<i;++j){ 29 if(str[j+1]<str[j]){ 30 temp=str[j]; 31 str[j]=str[j+1]; 32 str[j+1]=temp; 33 34 } 35 36 } 37 } 38 return str.toString(); 39 40 } 41 }