BubbleSort
冒泡排序:
1 package com.wang.sort; 2 3 /* 4 * @tittle: bubbleSort 5 * @author: wwwglin 6 * @time 2016/04/20 7 */ 8 9 /* 10 * 思路:重复的遍历要排序的数组,每次遍历过程中从头至尾比较两个相邻的元素,若顺序错误则交换两个元素。 11 * 冒泡排序算法结束的条件:在一趟排序过程中没有发生元素交换 12 * 时间复杂度: 13 * 最坏:O(n^2) 14 * 最好:O(n) 15 * 平均:O(n^2) 16 * 空间复杂度:O(1) 17 */ 18 public class BubbleSort { 19 public void bubbleSort(int[] nums) { 20 System.out.println(nums.length); 21 for (int i = nums.length; i >= 2; i--) { 22 int flag = 0; 23 for (int j = 1; j < i; j++) { 24 if (nums[j] < nums[j - 1]) { 25 nums[j - 1] = nums[j - 1] ^ nums[j]; 26 nums[j] = nums[j - 1] ^ nums[j]; 27 nums[j - 1] = nums[j - 1] ^ nums[j]; 28 flag = 1; 29 } 30 } 31 if (flag == 0) { 32 break; 33 } 34 } 35 } 36 37 public static void main(String[] args) { 38 int[] nums = { 49, 38, 65, 97, 76, 13, 27, 49 }; 39 System.out.println("排序前:"); 40 for (int i : nums) { 41 System.out.print(i + ","); 42 } 43 new BubbleSort().bubbleSort(nums); 44 System.out.println(); 45 System.out.println("排序后:"); 46 for (int i : nums) { 47 System.out.print(i + ","); 48 } 49 } 50 }

浙公网安备 33010602011771号