JAVA 冒泡排序法代碼

 

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);
    }
}
發佈了145 篇原創文章 · 獲贊 16 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章