冒泡排序

思路:假如有几个数字int[] arr = {3, 2, 89, 12}; 按照从大到小排序。
arr[j] 和 arr[j+1] 比较 如果 前者比后者小,把前者和后者调换顺序,两两调换后一轮下来 最小的会被排到最后去。每一轮j都从0开始,当i轮排序,就有最后面的i个数字因为他是最小的,所以后面的每轮都不用理他了,也就是 arr.length-1-i 往后的数不用管了,如上,第一轮有4个数字 i为0 ,那么arr.length-1-i 为3,也就是下标是3以后的可以不用管,3往后没有数字,所以第一轮所有的数字都要参加比较,第二轮i=1 arr.length-1-i 为2 也就是说 下标2后面的 下标为3的数字不用比了,实现代码如下:

package com.sam.example;

import java.util.Arrays;

/**
 * 冒泡排序
 *
 */
public class BubbleSort {

    /**
     *
     * @param array
     * @return
     */
    public static int[] sort(int[] array) {
        for(int i=0; iarray[j+1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }

    public static void main(String[] args) {
        int[] arr = {3, 2, 89, 12};
        System.out.println(Arrays.toString(BubbleSort.sort(arr)));
    }

}

你可能感兴趣的:(冒泡排序)