冒泡排序

来源:互联网 发布:android程序源码下载 编辑:程序博客网 时间:2024/06/06 03:50
import java.util.Scanner;


/**
 * 冒泡排序
 * 冒泡排序是计算机的一种排序方法,时间复杂度为O(N*N),虽然不及堆排序,快速排序,但是具有稳定性
 * @author Administrator
 *
 */
public class sort03 {
    public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
      System.out.println("请输入数组以空格分开:");
      String str = scanner.nextLine();
      String[] data = str.trim().split("\\s{1,}");//trim 去掉字符串开头和结尾的空格   split  \s表示空格  表示用1个以上的空格分割
      int []a = new int[data.length];
      for(int i=0;i<data.length;i++){
      a[i] =Integer.parseInt(data[i]);
      }
      print(a);
      bubblesort(a);
      System.out.println("排序后的数组");
      print(a);
    }
    public static void bubblesort(int[] data){
    for(int i=0;i<data.length-1;i++){
    //记录某趟是否发生交换,若为false表示数组已处于有序状态
    boolean issorted = false;
    for(int j=0;j<data.length-i-1;j++){
    if(data[j]>data[j+1]){
    int temp = data[j];
    data[j] = data[j+1];
    data[j+1] = temp;
    issorted = true;
    print(data);
    }
    }
    if(!issorted){
    //若数组已处于有序状态,结束循环
    break;
    }
    }
    }
    public static void print(int[] data){
    for(int i= 0;i<data.length;i++){
    System.out.print(data[i]+"\t");
    }
    System.out.println();
    }
}
1 0