冒泡排序

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;
    }
}

 

posted @ 2015-05-06 17:40  无天666  阅读(354)  评论(0编辑  收藏  举报