1用java实现冒泡排序算法以及解决的几个小问题。

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 }
原文地址:https://www.cnblogs.com/meihao1989/p/3174797.html