java冒泡排序的基本思想

君子不器 2013年05月22日 编程世界 4246次阅读 查看评论

将整个数组分成已排(右边)和未排(左边)两个部分,开始时已排部分为空,所有的成员都是未排,排序时,每次在未排的部分从左到右比较两个相邻的成员,如果左边成员大于右边成员,则二者交换。当一个成员被排到未排部分的最右边时,那么它就是未排部分的最大值。此时已排部分向左扩展一个成员,把最近排序的最大值包含进来。这样,已排部分逐渐增大,未排部分逐渐减小,直到未排部分只剩一个成员为止。

/**
* @author <a href="mailto:jrliwiscom@gmail.com">L.J.R</a>
*/
public class BubbleSort {

   public static final int[] intArray = {4,2,6,1,3,5};

   public static void main(String[] args) {
       for (int i = intArray.length - 1; i > 0; i--) {
           for(int j=1;j<=i;j++){
               if(intArray[j-1]>intArray[j]){
                   int temp = intArray[j-1];
                   intArray[j-1]=intArray[j];
                   intArray[j] = temp;
               }
           }
           System.out.println("i="+i+" 的数组:");
           printArray();
       }
       System.out.println("排序后的数组:");
       printArray();

   }

   private static void printArray() {
       for (int i = 0; i < intArray.length; i++) {
           System.out.print(intArray[i]+"\t");
       }
       System.out.println();
   }
}

运行程序输出结果:

i=5 的数组:
2    4    1    3    5    6    
i=4 的数组:
2    1    3    4    5    6    
i=3 的数组:
1    2    3    4    5    6    
i=2 的数组:
1    2    3    4    5    6    
i=1 的数组:
1    2    3    4    5    6    
排序后的数组:
1    2    3    4    5    6



冒泡排序动画演示



« 上一篇 下一篇 » 君子不器原创文章,转载请注明出处! 标签:小工具文摘

相关日志:

博主介绍
乌云蔽月,人迹踪绝,说不出如斯寂寞。
控制面板
您好,欢迎到访网站!
  [查看权限]
站点信息
  • 文章总数:1279
  • 页面总数:2
  • 分类总数:9
  • 标签总数:61
  • 评论总数:331
标签列表
友情链接