Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255378
  • 博文数量: 164
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 1129
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 21:55
文章分类

全部博文(164)

文章存档

2017年(2)

2015年(67)

2014年(95)

我的朋友

分类: Java

2015-05-11 20:48:24



点击(此处)折叠或打开

  1. public interface Sort {
  2.     public boolean sort(int[] arr);
  3. }

点击(此处)折叠或打开

  1. package com.lhk.sortDemo;

  2. import java.util.Arrays;

  3. public class BubbleSort implements Sort{

  4.     public boolean sort(int[] arr) {
  5.         if(arr == null){
  6.             return false;
  7.         }
  8.         
  9.         if(arr.length <= 1){
  10.             return true;
  11.         }
  12.         boolean flag = true;
  13.         int length = arr.length;
  14.         for(int i = 0; i < length - 1 && flag; i++){
  15.             flag = false;
  16.             for(int j = 0; j < length - i - 1; j++){
  17.                 if(arr[j] > arr[j + 1]){
  18.                     swap(arr, j , j + 1);
  19.                     flag = true;
  20.                 }
  21.             }
  22.             System.out.println(" sort num =" + (i+1) +" :" + Arrays.toString(arr));
  23.         }
  24.         return true;
  25.     }

  26.     
  27.     private void swap(int[] arr, int start, int end){
  28.         // 安全性判断就不做了。。
  29.         int temp = arr[start];
  30.         arr[start] = arr[end];
  31.         arr[end] = temp;
  32.     }
  33.     
  34. }


点击(此处)折叠或打开

  1. public class SortDemo1 {

  2.     /**
  3.      * @param args
  4.      */
  5.     public static void main(String[] args) {

  6.         int[] arr = {1,4,6,8,1,11,34,2,67,5,1,9,10,13,2,4,5};
  7.         
  8.         // 冒泡排序
  9.         Sort sort = new BubbleSort();
  10.         
  11.         System.out.println("before sort :" + Arrays.toString(arr));
  12.         
  13.         sort.sort(arr);
  14.         
  15.         
  16.         System.out.println("after sort :" + Arrays.toString(arr));
  17.     }

  18. }

结果:
before sort :[1, 4, 6, 8, 1, 11, 34, 2, 67, 5, 1, 9, 10, 13, 2, 4, 5]
 sort num =1 :[1, 4, 6, 1, 8, 11, 2, 34, 5, 1, 9, 10, 13, 2, 4, 5, 67]
 sort num =2 :[1, 4, 1, 6, 8, 2, 11, 5, 1, 9, 10, 13, 2, 4, 5, 34, 67]
 sort num =3 :[1, 1, 4, 6, 2, 8, 5, 1, 9, 10, 11, 2, 4, 5, 13, 34, 67]
 sort num =4 :[1, 1, 4, 2, 6, 5, 1, 8, 9, 10, 2, 4, 5, 11, 13, 34, 67]
 sort num =5 :[1, 1, 2, 4, 5, 1, 6, 8, 9, 2, 4, 5, 10, 11, 13, 34, 67]
 sort num =6 :[1, 1, 2, 4, 1, 5, 6, 8, 2, 4, 5, 9, 10, 11, 13, 34, 67]
 sort num =7 :[1, 1, 2, 1, 4, 5, 6, 2, 4, 5, 8, 9, 10, 11, 13, 34, 67]
 sort num =8 :[1, 1, 1, 2, 4, 5, 2, 4, 5, 6, 8, 9, 10, 11, 13, 34, 67]
 sort num =9 :[1, 1, 1, 2, 4, 2, 4, 5, 5, 6, 8, 9, 10, 11, 13, 34, 67]
 sort num =10 :[1, 1, 1, 2, 2, 4, 4, 5, 5, 6, 8, 9, 10, 11, 13, 34, 67]
 sort num =11 :[1, 1, 1, 2, 2, 4, 4, 5, 5, 6, 8, 9, 10, 11, 13, 34, 67]
after sort :[1, 1, 1, 2, 2, 4, 4, 5, 5, 6, 8, 9, 10, 11, 13, 34, 67]

冒泡排序是一种效率低下的排序方法,在数据规模很小时,可以采用。数据规模比较大时,最好用其它排序方法。
阅读(677) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~