zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    DotNet中的迭代模式和组合模式
    能以可视化方式编辑滤镜效果的Image控件
    自定义ExtenderControl实现服务器控件可拖放
    股票交易费及利润计算器
    用ajax library的客户端脚本实现无刷新分页
    实现html转Xml
    oracle10g主机身份证明错误的解决办法
    创建ASP.NET AJAX客户端组件实现验证控件的toolTip式错误提示
    可分页的Repeater控件
    数据结构趣题——约瑟夫环
  • 原文地址:https://www.cnblogs.com/meihao1989/p/3174797.html
Copyright © 2011-2022 走看看