java排序之冒泡排序

代码:

 1 package com.cn.algorithm_arithmetic算法;
 2 /**
 3  * 本程序记录了经典排序算法之冒泡排序
 4  * @author Administrator
 5  *
 6  */
 7 
 8 public class Bubble_Sort {
 9         //冒泡排序优化前
10         public static void bubble_sort(int [] a){
11         for (int i = 0; i < a.length-1; i++) {
12             for (int j = 0; j < a.length-i-1; j++) {
13                 if (a[j+1] < a[j]){
14                     int temp = a[j];
15                     a[j] = a[j+1];
16                     a[j+1] = temp;
17                 }
18             }
19         }
20         }
21         
22         //冒泡排序优化后
23         public static int[] bubble_sort_optimize(int a[]){
24             for (int i = 0; i < a.length-1; i++) {
25                 boolean exchange = false;
26                 for (int j = 0; j < a.length-i-1; j++) {
27                     if (a[j+1]<a[j]){
28                         int tmp = a[j];
29                         a[j] = a[j+1];
30                         a[j+1]=tmp;
31                         exchange = true;
32                     }
33                 
34                 }
35                 if (exchange = false){
36                     break;
37                 }
38             }
39             return a;
40         }
41 
42     public static void main(String[] args) {
43         System.out.println("--------------优化前--------------");
44         System.out.print("冒泡排序优化前原始数据:");
45         int a[] = new int[5];
46         for (int i = 0; i < a.length; i++) {
47             a[i] = (int)(Math.random()*100);
48             System.out.print(a[i]+"  ");
49         }
50         bubble_sort(a);
51         System.out.print("\n冒泡排序优化前新数据:");
52         for (int i = 0; i < a.length; i++) {
53             System.out.print(a[i]+"  ");
54         }
55         System.out.println("\n---------------优化后--------------");
56         //冒泡排序
57         System.out.print("冒泡排序优化后原始数据:");
58         int a1[] = new int[5];
59         for (int i = 0; i < a1.length; i++) {
60             a1[i] = (int)(Math.random()*100);
61             System.out.print(a1[i]+"  ");
62         }
63         bubble_sort_optimize(a1);
64         System.out.print("\n冒泡排序优化后新数据:");
65         for (int i = 0; i < a1.length; i++) {
66             System.out.print(a1[i]+"  ");
67         }
68     }
69 
70 }

冒泡排序的时间复杂度:理想O(n),平均O(n^2),助记口决:外管轮询内管排

posted @ 2018-01-24 18:35  海的味道  阅读(153)  评论(0编辑  收藏  举报