美文网首页
3.简单排序之冒泡排序

3.简单排序之冒泡排序

作者: 穹生变 | 来源:发表于2021-02-28 19:10 被阅读0次

    简单排序有:1.冒泡排序。2.选择排序。3.插入排序。


    原理:

     1.假设数组有n个数据。
     2.第1轮我们从下标0开始遍历,比较当前元素和相邻下一个元素大小,如果当前元素小于下一个元素,把当前元素和下一个元素替换位置,当遍历完下标为n-2的元素时,那么数组中最小的值就放到了数组的末尾,即下标为n-1的位置。第一轮遍历次数为n-1次。
     3.开始第二轮遍历,依旧从下标0开始遍历,比较当前元素和响铃下一个元素大小,如果当前元素小于下一个元素,把当前元素和下一个元素替换位置,当遍历完到下标为n-3时,数组中第二小的元素就放到了数组倒数2,也就是小标为n-2的位置,结束第二轮遍历。第二轮遍历次数为n-2次。
     4.当遍历到第n-1轮,遍历完下标为0的元素,数组中最大的值就放在了下标为0的位置。第n-1轮遍历次数为1次。

    代码实现

    package china.guo.calc.simplesort;
    
    import java.util.Arrays;
    
    //冒泡排序
    public class Bubble {
    
        //排序
        public static void sort(Comparable[] array) {
            for (int i = array.length-1; i > 0; i--) {
                for (int j = 0; j < i; j++) {
                    if (greater(array[j],array[j+1])){
                        exchange(array,j,j+1);
                    }
                }
            }
    
        }
    
        //比较c1和c2大小
        public static boolean greater(Comparable c1,Comparable c2){
            return c1.compareTo(c2)>0;
        }
    
        //交换索引i和索引j处的元素位置
        public static void exchange(Comparable[] array,int i,int j){
            Comparable temp;
            temp = array[i];
            array[i]=array[j];
            array[j]=temp;
        }
    
        public static void main(String[] args) {
            Integer[] array = new Integer[]{4,5,3,6,1,2};
            sort(array);
            System.out.println(Arrays.toString(array));
        }
    }
    

    相关文章

      网友评论

          本文标题:3.简单排序之冒泡排序

          本文链接:https://www.haomeiwen.com/subject/cddifltx.html