现在的位置: 首页 > 综合 > 正文

JAVA 冒泡排序法代码

2013年08月20日 ⁄ 综合 ⁄ 共 2615字 ⁄ 字号 评论关闭

 

public class A{
   
   
public static void sort(String arg){
       String[] args
=arg.split(",");
       
for(int i=0;i<args.length;i++){
           
for(int j=0;j<args.length-i-1;j++){
               
int a=Integer.parseInt(args[j]);
               
int b=Integer.parseInt(args[j+1]);
               
if(a>b){
                   a
=a^b;
                   b
=a^b;
                   a
=a^b;
               }

               args[j]
=String.valueOf(a);
               args[j
+1]=String.valueOf(b);
           }

       }

       
for(int i=0;i<9;i++){
           System.out.print(args[i]
+",");
       }

   }


   
public static void main(String[] args){
       sort(
"2,10,3,50,78,22,34,30,65");
   }


        
}

改进Ⅰ型
A.java

import java.util.*;
public class A{
   
static int ci=0;
   
public static void sort(String arg,int flag){
       String[] args
=arg.split(",");
       
long c1=Calendar.getInstance().getTimeInMillis();
       _out:
       
for(int i=0;i<args.length;i++){
           
int n=0;
           
for(int j=0;j<args.length-i-1;j++){
               
int a=Integer.parseInt(args[j]);
               
int b=Integer.parseInt(args[j+1]);
               ci
++;
               
if(a>b){
                   a
=a^b;
                   b
=a^b;
                   a
=a^b;
                   n
++;
               }
              
               args[j]
=String.valueOf(a);
               args[j
+1]=String.valueOf(b);
           }
           
           
if(n==0 && flag==1){
                   
break _out;
           }
           
       }
       
for(int i=0;i<args.length;i++){
           System.out.print(args[i]
+",");
       }
       
long c2=Calendar.getInstance().getTimeInMillis();

       long d1=c2-c1;
       System.out.println();
       System.out.println(
"------------------------------------------------------");
       System.out.println(
"运行时间:"+d1+"毫秒,循环"+ci+"");
   }

   public static void main(String[] args){
       sort(
"2,10,3,50,78,22,34,30,65,1,4,7,8,9,5,6,12,11,13,17,16,19,23,25,33,20",Integer.parseInt(args[0]));
   }
        
}

B.java 测试类

import java.io.*;
import java.util.*;
public class B
{
    
public static void main(String[] args){
       List li
=new ArrayList();
       Random rnd
=new Random();
                        
//生成10000个无序的不重复整数
       for(int i=0;i<10000;i++){   
           
int a=rnd.nextInt(10000);
           
while(li.contains(new Integer(a))){
               a
=rnd.nextInt(10000);
           }
           li.add(
new Integer(a));
       }
       Object[] ints
=li.toArray();
       String s
=Arrays.toString(ints);
       s
=s.substring(1,s.length()-2);
       s
=s.replaceAll(" ","");
       A ao
=new A();
       
int flag=Integer.parseInt(args[0]);
       ao.sort(s,flag);
    }
}

抱歉!评论已关闭.