51Testing软件测试论坛
标题:
java初学之排序——冒泡排序
[打印本页]
作者:
haveatry
时间:
2010-10-29 16:57
标题:
java初学之排序——冒泡排序
java初学之排序——冒泡排序
Java私塾跟我学系列——JAVA篇 网址:
www.javass.cn
对几个无序的数字进行排序,比较常用的方法是冒泡排序法。冒泡法排序是一个比较简单的排序方法,在待排序的数列基本有序的情况下排序速度较快。
基本思路:对未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。
可以看出如果有 N 个元素,那么一共要进行 N-1 轮比较,第 I 轮要进行 N-I 次比较。如:
有 5 个元素,则要进行 5-1 轮比较。第 3 轮则要进行 5-3 次比较)
示例如下:
public class Test {
public static void main(String[] args) {
//需要排序的数组,目前是按照升序排列的
int a[] = new int[5];
a[0] = 3;
a[1] = 4;
a[2] = 1;
a[3] = 5;
a[4] = 2;
//冒泡排序
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
//注意j的开始值是i+1,因为按照排序规则,比a大的值都应该在它后面
if(a > a[j]){
int temp = a[j];
a[j] = a;
a = temp;
}
}
}
//检测一下排序的结果
for(int i : a){
System.out.println("i="+i);
}
}
}
复制代码
运行结果:
i=1
i=2
i=3
i=4
i=5
如果你想要按照降序排列,很简单,只需把:if(a > a[j])改成:if(a < a[j])就可以了。
作者:
默铭
时间:
2010-12-27 21:10
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2