排序-1-冒泡排序

来源:互联网 发布:中日韩围棋 知乎 编辑:程序博客网 时间:2024/05/21 06:59

工具方法类

package myDataStructrueADNDalgorith.three.arrSort;/** * 数组为模板排序算法中的一些公用的模板方法 * 创建人:曹雪坤 * 时间:2017年3月12日-上午10:15:02  * @version 1.0.0 * */public class Example {    /*     * 交换数组中的两个数据     */    public static void exch(int [] arr,int i,int index){        int change = arr[i];        arr[i] = arr[index];        arr[index] = change;    }    /*     * 遍历数组     */    public static void show(int[] arr){        System.out.println("遍历数组");        for(int i:arr){            System.out.print("  "+i+"  ");        }        System.out.println();    }}

冒泡排序的思路:
不断遍历数组,比较当前下标对应的数与下一个下标对应的数是否需要交换,只要一次遍历当中交换了,就设置一个标记。知道一次遍历过程当中没有交换数据

package myDataStructrueADNDalgorith.three.arrSort;/** * @author caoxuekun * @date  2017年9月6日 下午10:48:47  * @version V1.0    * @Description:冒泡排序 */public class MaoPaoSort {    public static void main(String[] args) {        int arr[] = {3,5,1,4,2,7,9,6,10,8};        MaoPaoSort.sort(arr);        Example.show(arr);    }    public static void sort(int arr[]){        boolean flat = true;        int index = 0;        while(flat){            for(int i = 0;i<arr.length-1;i++){                if(arr[i]<arr[i+1]){                    Example.exch(arr, i, i+1);                    index = 1;                }            }            if(index == 1){                index = 0;            }else{                flat = false;            }            Example.show(arr);        }    }}