哪位大哥谁能帮小弟用JAVA写下冒泡法~多谢~

解决方案 »

  1.   

    google : java 冒泡算法
    用C语言代码和JAVA代码实现冒泡法排序 
     
    今天用C语言代码和JAVA代码实现了冒泡法排序的程序,代码如下:
    C语言代码:
    main()
    {
      int a[11];
      int i,j,k;
      printf("intput 10 numbers:\n");
     for(i=1;i<11;i++)
     scanf("%d",&a[i]);
     printf("\n");
     for(i=1;i<=9;i++)
        for(j=1;j<=10-i;j++)
             if(a[j]>a[j+1])
            {
                k=a[j];
               a[j]=a[j+1];
               a[j+1]=k;
            }
            printf("the sorted numbers:\n");
            for(i=1;i<11;i++)
                 printf("%d",a[i]);
    }
    --------------------------------------------------------------------
    JAVA代码(一):
    public class Stort
    {   
     public static void main(String[] args) 
     {        
       int t;
       int intArray[]={1,8,2,9,10,3,0,4,6,5}; 
       System.out.print("the sorted numbers are:");
       for(int i=0;i<9;i++)
       {
        for(int j=i+1;j<10;j++)
        {
         if(intArray[i]>intArray[j])
         {
          t=intArray[i];
          intArray[i]=intArray[j];
          intArray[j]=t;
          }
        }
        
        System.out.print(intArray[i]+" ");
                       
       }
       
         }
        
    }
     
    -------------------------------------------------------------------- 
    JAVA代码(二):class SortDemo 
    {   
        
     int i,j,t;
       
     SortDemo()
     {
      i=0;
      j=0;
      t=0;
     }
       
     void sort(int n,int intArray[])
     {
      for(int i=0;i<n-1;i++)
      {
       for(int j=i+1;j<n;j++)
       {
        if(intArray[i]>intArray[j])
        {
         t=intArray[i];
         intArray[i]=intArray[j];
         intArray[j]=t;
        }
       }
      }
     }  
    }
     
    public class Test 
    {   
     public static void main(String[] args) 
     {        
      
       int intArray[]={1,8,2,9,10,3,0,4,6,5};
       SortDemo m=new SortDemo();
       System.out.println("Befor sorting:");
       for(int i=0;i<10;i++)
       System.out.print(" "+intArray[i]);
       
       System.out.println("\n---------------------");
       
       m.sort(intArray.length,intArray);
       System.out.println("After sorting:");
       for(int i=0;i<10;i++)
       System.out.print(" "+intArray[i]);
          } 
          
     }        
     
     
      

  2.   

    google : Java排序算法Java排序算法 
     
    作者:未知    文章来源:HYXP    点击数:355    更新时间:2006-03-11 
    package com.cucu.test; /** 
     * @author http://www.hyxp.net <a href=mailto:[email protected]>[email protected]</a> 
     * @version 1.0 
     */ 
    public class Sort {   public void swap(int a[], int i, int j) { 
        int tmp = a[i]; 
        a[i] = a[j]; 
        a[j] = tmp; 
      }   public int partition(int a[], int low, int high) { 
        int pivot, p_pos, i; 
        p_pos = low; 
        pivot = a[p_pos]; 
        for (i = low + 1; i <= high; i++) { 
          if (a[i] > pivot) { 
            p_pos++; 
            swap(a, p_pos, i); 
          } 
        } 
        swap(a, low, p_pos); 
        return p_pos; 
      }   public void quicksort(int a[], int low, int high) { 
        int pivot; 
        if (low < high) { 
          pivot = partition(a, low, high); 
          quicksort(a, low, pivot - 1); 
          quicksort(a, pivot + 1, high); 
        }   }   public static void main(String args[]) { 
        int vec[] = new int[] { 37, 47, 23, -5, 19, 56 }; 
        int temp; 
        //选择排序法(Selection Sort) 
        long begin = System.currentTimeMillis(); 
        for (int k = 0; k < 1000000; k++) { 
          for (int i = 0; i < vec.length; i++) { 
            for (int j = i; j < vec.length; j++) { 
              if (vec[j] > vec[i]) { 
                temp = vec[i]; 
                vec[i] = vec[j]; 
                vec[j] = temp; 
              } 
            }       } 
        } 
        long end = System.currentTimeMillis(); 
        System.out.println("选择法用时为:" + (end - begin)); 
        //打印排序好的结果 
        for (int i = 0; i < vec.length; i++) { 
          System.out.println(vec[i]); 
        } 
        //  冒泡排序法(Bubble Sort) 
        begin = System.currentTimeMillis(); 
        for (int k = 0; k < 1000000; k++) { 
          for (int i = 0; i < vec.length; i++) { 
            for (int j = i; j < vec.length - 1; j++) { 
              if (vec[j + 1] > vec[j]) { 
                temp = vec[j + 1]; 
                vec[j + 1] = vec[j]; 
                vec[j] = temp; 
              } 
            }       } 
        } 
        end = System.currentTimeMillis(); 
        System.out.println("冒泡法用时为:" + (end - begin)); 
        //打印排序好的结果 
        for (int i = 0; i < vec.length; i++) { 
          System.out.println(vec[i]); 
        }     //插入排序法(Insertion Sort) 
        begin = System.currentTimeMillis(); 
        for (int k = 0; k < 1000000; k++) { 
          for (int i = 1; i < vec.length; i++) { 
            int j = i; 
            while (vec[j - 1] < vec[i]) { 
              vec[j] = vec[j - 1]; 
              j--; 
              if (j <= 0) { 
                break; 
              } 
            } 
            vec[j] = vec[i]; 
          } 
        } 
        end = System.currentTimeMillis(); 
        System.out.println("插入法用时为:" + (end - begin)); 
        //打印排序好的结果 
        for (int i = 0; i < vec.length; i++) { 
          System.out.println(vec[i]); 
        }     //快速排序法(Quick Sort)     Sort s = new Sort(); 
        begin = System.currentTimeMillis(); 
        for (int k = 0; k < 1000000; k++) { 
          s.quicksort(vec, 0, 5); 
        } 
        end = System.currentTimeMillis(); 
        System.out.println("快速法用时为:" + (end - begin)); 
        //打印排序好的结果 
        for (int i = 0; i < vec.length; i++) { 
          System.out.println(vec[i]); 
        } 
      } } 
    以下是运行结果: 
    选择法用时为:234 
    56 
    47 
    37 
    23 
    19 
    -5 
    冒泡法用时为:172 
    56 
    47 
    37 
    23 
    19 
    -5 
    插入法用时为:78 
    56 
    47 
    37 
    23 
    19 
    -5 
    快速法用时为:297 
    56 
    47 
    37 
    23 
    19 
    -5  
      

  3.   

    //big to small 
      public static void sequence(int[] a)
      {
       int length=a.length;
       for(int j=length-1;j>0;j--)
       for(int i=0;i<j;i++)
       {
       if(a[i]<a[i+1])
       {
       int temp=a[i];
       a[i]=a[i+1];
       a[i+1]=temp;
       }
       }
      

  4.   


    import java.util.Random;public class BubbleSort { public static void sort(int[] a) {
    int i = a.length -1;
    while(i>-1 ){
    int j=i;
    while(true){
    if(j-1<0)break;
    if(isNeededSwap(a,j,j-1))swap(a,j,j-1);
    j--;
    }
    i--;

    }
    }
    private static boolean isNeededSwap(int[] a,int i,int j){
    return (a[i]<a[j]);
    }
    private static void swap(int [] a,int i,int j){
    int temp = a[i];
    a[i] =a [j];
    a[j]  = temp;
    } public static void main(String args[]) {
    int a[] = getTestData(10);
    show(a);
    BubbleSort.sort(a);
    show(a);
    }
    public static void show(int []a){
    for(int i=0;i<a.length;i++){
    System.out.print(a[i]+" ");
    }
    System.out.println();
    }
    public static int[] getTestData(int size){
    int [] res = new int[size];
    Random random = new Random(System.currentTimeMillis());
    for(int i=0;i<size;i++){
    res[i] = random.nextInt();
    }
    return res;
    }}
      

  5.   

    不要定义temp,直接把num[0]作为temp,可以提高效率public static void buSort()
    {
    for(int i=1;i<num.length-1;i++)
            for(int j=num.length-1;j>=1;j--)
            {
                if(num[j]<num[j-1])
                  {
                      num[0]=num[j];
                      num[j]=num[j-1];
                      num[j-1]=num[0];
                  }
           }
    }