|
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])就可以了。 |
|