一步一步搞清排序之冒泡排序(JAVA实现)

来源:互联网 发布:java文本框不可编辑 编辑:程序博客网 时间:2024/05/17 17:54

大一C渣渣就讲了的冒泡排序,原理很简单易懂,最近复习各种排序算法,就从冒泡开始吧~~
基本原理:以升序为例子,同过比较不断的将最小的元素往上移,最早确定的是array[0]的数据,接下来再比较剩下的 n-1 个数据,确定array[1]的数据,以此类推…
选择开始比较数据的方式:
可以有两个方向,第一个,由上至下,选定除已确定位置数据的下一位置,由该位置开始向后进行比较,遇到比其小的数据便交换两个数据的位置,直到遍历完剩下的数据为止(注:始终与选定位置的数据进行比较),但是这样的方式存在一个问题,可能较小的数据会在比较中被交换到很后面的位置。
解决办法,就是我们的第二种方法,由下至上选择数据开始比较,这样能保证较小的数据是不断向上移动位置的,就像泡泡一点一点的往天空上升~~

package zj.com.test1.maopao;import java.util.Arrays;import java.util.Scanner;public class Bubble {    int temp = 0;    public void bSort(int array[]){        for(int i = 0;i<array.length;i++){            for(int j = array.length-1;j>i;j--)            {                if(array[i]>array[j])                {                    temp = array[i];                    array[i] = array[j];                    array[j] = temp;                }            }        }    }    public static void main(String[] args) {        //实例化类        Bubble bubble = new Bubble();        //定义一个数组        int[] a = new int[10];        /*获取键盘输入*/        Scanner scanner = new Scanner(System.in);        for(int i = 0;i<10;i++){            a[i] = scanner.nextInt();        }        bubble.bSort(a);        //按照排序结果输出数组        System.out.print(Arrays.toString(a));    }}
1 0
原创粉丝点击