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 }

 

posted @ 2016-04-20 15:12  wwwglin  阅读(229)  评论(0)    收藏  举报