首页 > 代码库 > 新学的 冒泡排序

新学的 冒泡排序

 

import java.util.Scanner;

public class MaoPaoPaiXu {

  public static void main(String[] args) {
    Scanner input=new Scanner(System.in); //创建扫描器
    System.out.print("数组长度:");
    int num=input.nextInt(); //键盘录入数组长度
    int[] nums=new int[num]; //定义数组
    int i,j; //定义两个循环变量
    int temp; //临时变量
    for (int k = 0; k < nums.length; k++) {
      System.out.print("第"+(k+1)+"个数:");
      nums[k]=input.nextInt();
    }
    System.out.print("排序前:");
    for (int k = 0; k < nums.length; k++) {
      System.out.print(nums[k]+" ");
    }
    /**
    * 冒泡排序(二重循环)
    */
    for (int k = 0; k < nums.length-1; k++) { //控制比较多少轮
      for (int k2 = 0; k2 < nums.length-1-k; k2++) { //将最大的元素换到最后
        if (nums[k2]>nums[k2+1]) {
          //交换元素
          temp=nums[k2];
          nums[k2]=nums[k2+1];
          nums[k2+1]=temp;
        }
      }
    }
    System.out.print("\n排序后:");
    for (int k = 0; k < nums.length; k++) {
      System.out.print(+nums[k]+" ");
    }
  }
}

冒泡排序其实就是一种简单的交换排序。就是从头开始扫描待排序的元素,在扫描过程中依次对相邻的元素进行你比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。

简单地说:

  就是执行二重循环,比较的轮数就是外层循环的条件,比较的次数就是内层循环的条件

新学的 冒泡排序