java冒泡排序
1 /** 2 * 原理: 3 * 进行n次循环,每次循环从后往前对相邻两个元素进行比较,小的往前,大的往后 4 * 5 * 时间复杂度: 6 * 平均情况:O(n^2) 7 * 最好情况:O(n) 8 * 最坏情况:O(n^2) 9 * 10 * 稳定性:稳定 11 **/ 12 public class 冒泡排序 { 13 14 public int[] bubbleSort(int[] a, int n) { 15 for (int i = 0; i < n; i++) { 16 int flag = 0; 17 for (int j = n - 1; j > i; j--) {// i or i-1 ? 18 if (a[j] < a[j - 1]) { 19 int x = a[j]; 20 a[j] = a[j - 1]; 21 a[j - 1] = x; 22 flag = 1; 23 } 24 } 25 if (flag == 0) 26 break; 27 } 28 return a; 29 } 30 31 /** 32 * @param args 33 */ 34 public static void main(String[] args) { 35 // TODO Auto-generated method stub 36 int[] a = new int[] { 25, 56, 32, 20, 1, 5, 89, 3, 8, 41 }; 37 冒泡排序 sort = new 冒泡排序(); 38 sort.bubbleSort(a, a.length); 39 for (int i = 0; i < a.length; i++) { 40 System.out.print(a[i] + " "); 41 } 42 } 43 }
posted on 2013-10-11 15:17 tianyuanshgan 阅读(139) 评论(0) 编辑 收藏 举报