排序算法----冒泡排序
与选择排序前面的元素有序不同的是,冒泡排序每次排序是将最大的元素交换到后面去,每一趟排序排定一个元素位置,即未排序的最后一位。
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; } }
浙公网安备 33010602011771号