51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4557|回复: 1
打印 上一主题 下一主题

java初学之排序——冒泡排序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-10-29 16:57:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
java初学之排序——冒泡排序

Java私塾跟我学系列——JAVA篇 网址:www.javass.cn

对几个无序的数字进行排序,比较常用的方法是冒泡排序法。冒泡法排序是一个比较简单的排序方法,在待排序的数列基本有序的情况下排序速度较快。

基本思路:对未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。

可以看出如果有 N 个元素,那么一共要进行 N-1 轮比较,第 I 轮要进行 N-I 次比较。如:

有 5 个元素,则要进行 5-1 轮比较。第 3 轮则要进行 5-3 次比较)

示例如下:

  1. public class Test {   
  2.     public static void main(String[] args) {
  3.        //需要排序的数组,目前是按照升序排列的
  4.         int a[] = new int[5];
  5.         a[0] = 3;
  6.         a[1] = 4;
  7.         a[2] = 1;
  8.         a[3] = 5;
  9.         a[4] = 2;

  10.        //冒泡排序
  11.       for(int i=0;i<a.length;i++){
  12.             for(int j=i+1;j<a.length;j++){
  13.             //注意j的开始值是i+1,因为按照排序规则,比a大的值都应该在它后面
  14.             if(a > a[j]){
  15.                     int temp = a[j];
  16.                     a[j] = a;
  17.                     a = temp;
  18.                  }
  19.              }
  20.          }
  21.       //检测一下排序的结果
  22.      for(int i : a){
  23.              System.out.println("i="+i);
  24.         }
  25.     }
  26. }
复制代码
运行结果:
i=1
i=2
i=3
i=4
i=5

如果你想要按照降序排列,很简单,只需把:if(a > a[j])改成:if(a < a[j])就可以了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-12-27 21:10:48 | 只看该作者
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-27 10:07 , Processed in 0.072509 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表