1.冒泡排序

 package lsg.ap.bubble;
 import java.util.*;
 public class BubbleSort
 {

     public static void bubbleSort(int[] array)
     {
         int temp;
         // 第一层循环: 表明要比较的次数,即需要比较多少轮
         //第二层循环:每个元素依次与每轮的第一个元素(i指示的元素,i会每轮
         //递增1,要注意这点)进行比较,每一轮都把最大的元素冒泡到顶部
         for(int i=0;i<array.length;i++)
         {

             for(int j=0;j<array.length-1-i;j++)
             {

                 if(array[i]>array[j])
                 {

                     temp=array[i];

                     array[i]=array[j];

                     array[j]=temp;

                 }

             }
         }
     }
      /**
      *
      * 输出相应数组的结果
      * @param array
      */
     private static void printArray(int[] array)
     {
        for(int value:array)
        {
            System.out.print(" "+value+" ");

        }
        System.out.println();
     }
     public static void main(String[] args)
     {
         //小数据量的测试
         int[] array=new int[]{3,44,38,5,47};
         //下面是大数据量的测试。这样才能看出不同算法的优劣
         Random random=new Random();
         int[] array2=new int[2000];
         for(int j=0;j<2000;j++)
         {
             array2[j]=random.nextInt(100000);
         }
          System.out.println("排序前数组元素为:");
          printArray(array);
          long dateStart=System.nanoTime();
          bubbleSort(array);
          long dateEnd=  System.nanoTime();
          long totalTime=dateEnd-dateStart;
          System.out.println("冒泡排序的时间复杂度为:");
          System.out.println(totalTime+"纳秒");
          System.out.println("排序后数组元素为:");
          printArray(array);
     }

 }
05-07 15:36