排序算法----冒泡排序

       与选择排序前面的元素有序不同的是,冒泡排序每次排序是将最大的元素交换到后面去,每一趟排序排定一个元素位置,即未排序的最后一位。

     

package young.unit01;

/**
 * 冒泡排序
 * 
 * 稳定性:可以做到稳定性(相等的时候不交换,指针直接下移)
 * @author sunmin
 * @Description:TODO
 * @date:2018年6月16日    上午10:34:57 
 * @Copyright: 2018 www.xy.com. All rights reserved. 
 * 内部代码,严禁外泄
 */
public class T03_BubbleSort {
    
    // (n+(n-1)+(n-2)+...+2+1) = O(n^2)
    private static void bubbleSort(int[] nums) {
        if (nums == null || nums.length < 2) {
            return;
        }
        for (int end = nums.length - 1; end > 0; end--) {
            for (int i = 0; i < end; i++) {
                if (nums[i] > nums[i + 1]) {
                    swap(nums, i, i + 1);
                }
            }
        }
    }
    
    private static void swap(int[] nums, int i, int j) {
        int tmp = nums[i];
        nums[i] = nums[j];
        nums[j] = tmp;
    }
   }

 

posted @ 2018-07-17 15:25  大将军姜伯约  阅读(98)  评论(0)    收藏  举报