算法入门———冒泡排序

冒泡排序从名字上就可以看出它的特点就像水里的气泡一样每一个气泡一步一步网上冒

一图胜前言

冒泡的基本思想就是讲两两相邻的数字进行大小比较,大的数字放在后面。

  1.  比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2.  对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3.  针对所有的元素重复以上的步骤,除了最后一个。
  4.  持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
package bubblesort;

/**
 * 冒泡排序
 * 基本原理:将两两相邻的数字组成一组进行比较大小,如果前一个比后一个大则交换位置。
 * 对每一组元素进行相同的操作。每一组排序借宿后最后一个数字应该是最大的
 * 基本写法:
 * 1.采用双层循环,第一层表示需要循环的趟数(可以分成的组数i-1),
 * 2.第二层循环表示每一趟需要比较的次数(j)
 * 3.趟数和每趟次数之间的关系j=arr.legth-1-i 
 */
public class BubbleSort {
    public static void main(String[] args){
        int[] score ={67,69,75,110,34,43};
        for(int i=0;i<score.length-1;i++){//循环趟数
            //内层循环表示每一趟需要比较的次数
            for(int j=0;j<score.length-1-i;j++){
                //(核心部分)两两比较大小,若前一个数字比后一个数字大则交换
                if(score[j]>score[j+1]){
                    //提问score[j+1]会不会越界?
                    //定义一个中间变量用于交换
                    int temp=score[j];
                    score[j]=score[j+1];
                    score[j+1]=temp;
                }
            }
        }
        System.out.println("最终结果:");
        for (int n : score) {
            System.err.print(n+"	");
        }
    }
}
原文地址:https://www.cnblogs.com/xiawenyu/p/5727817.html