冒泡排序

public class BubbleSort{

  public static void main(String args[]){

    int[] values={3,1,6,2,9,1,6,2,9,0,7,4,5};

    sort(values);

    for(int i=0;i<values.length;i++){//排序后打印数组中的元素

      System.out.println("Index: "+i+"  value: "+values[i]);

    }

  }

  public static void sort(int[] values){

    int temp;

    for(int i=2;i<=values.length;i++){

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

        if(values[j]>values[j+1]){

          temp=values[j];

          values[j]=values[j+1];

          values[j+1]=temp;

        }

      }

    }

  }

}

 改进:

void BubbleSort1(int a[],int n)

{

    int i,j,t,flag=0;        //flag用来标记是否发生交换

    for(i=0;i<n-1;i++)

    {

        for(j=n-1;j>i;j--)

        {

            if(a[j-1]>a[j])//交换数据 

            {

                t=a[j-1];

                a[j-1]=a[j];

                a[j]=t;

                flag=1;

            }

        }if(flag==0)    //没发生交换,直接跳出循环

            break;

        else

            flag=0;

    }

}

 

你可能感兴趣的:(冒泡排序)