冒泡排序

实现数字升序排序

举例:{87,56,43,35,66}

分析:每次比较相邻两数,小的交换到前面,每轮比较结束后最大的数交换到最后

第一轮:(1)56 87 43 35 66(87和56比较,56小,交换)

    (2)56 43 87 35 66(87和43比较,43小,交换)

    (3)56 43 35 87 66(87和35比较,35小,交换)

    (4)56 43 35 66 87(87和66比较,66小,交换)

    本轮87最大,下面不再进行比较

第二轮:(1)43 56 35 66(56和43比较,43小,交换)

    (2)43 35 56 66(56和35比较,35小,交换)

    (3)43 35 56 66(56和66比较,56小,不交换)

    本轮66最大,下面不再进行比较

第三轮:(1)35 43 56(43和35比较,35小,交换)

    (2)35 43 56(43和56比较,43小,不交换)

    本轮56最大,下面不再进行比较

第四轮:(1)35 43(35和43比较,35小,不交换)

 

由上总结结论:n个数排序,比较n-1轮,每轮比较(n-(轮数))次

代码实现:

import java.util.Arrays;

//冒泡排序
public class Bubble {
  public static void main(String[] args) {
    int []arr={87,56,43,35,66};
    for (int i = 0; i < arr.length-1; i++) {
      for (int j = 0; j < arr.length-1-i; j++) {
        if(arr[j]>arr[j+1]){//比较相邻两数,小的交换到前面
        int temp=arr[j];
        arr[j]=arr[j+1];
        arr[j+1]=temp;
        }
      }
    }
    //输出按升序排序后的结果
    System.out.println(Arrays.toString(arr));
  }
}

 

posted @ 2020-07-02 11:13  虫什  阅读(78)  评论(0)    收藏  举报