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 }