冒泡排序学习

来源:互联网 发布:java注解原理 编辑:程序博客网 时间:2024/05/29 04:27

冒泡排序:

1、第一个和第二个元素依次比较,如果前一个大于后一个则,将两个元素的值交换,后一个元素再与下一个元素进行比较,直到最后一个元素。此时得到的最后一个元素将是数组中最大的元素。最大的元素固定,不在进行比较操作;

2、再从第一个第二个开始依次比较,如果前一个大于后一个则,将两个元素的值交换,后一个元素再与下一个元素进行比较,直到倒数第二个元素。此时得到的倒数第二个元素是数组中第二大的元素,这个元素也固定,不在进行比较操作;

      ...

3、按照上述规则一直操作,直到确定最小元素位为止;得到的结果将是按照从小到大顺序排列的数组;

代码如下:

public class BubbleSort {
    private static int num=0;//循环次数
    
    public static int[] sort(int[] forSort,int length){
        if(length>0){
            for(int i = 0; i<length-1 ; i++ ){
                num++;
                if(forSort[i]>forSort[i+1]){
                    int temp = forSort[i];
                    forSort[i] = forSort[i+1];
                    forSort[i+1] = temp;
                }
            }
            length--;
            System.out.println("分次结果:"+Arrays.toString(forSort) +", length="+ length);
            sort(forSort, length);
        }
        return forSort;
    }
    
    public static void main(String[] args) {
        int[] array = {2,5,6,8,5,4,6,9,4,9};
        array = sort(array, array.length-1);
        System.out.println("最后结果:"+Arrays.toString(array)+",num="+num);

    }
}
执行结果如下:

分次结果:[2, 5, 6, 5, 4, 6, 8, 4, 9, 9], length=8
分次结果:[2, 5, 5, 4, 6, 6, 4, 8, 9, 9], length=7
分次结果:[2, 5, 4, 5, 6, 4, 6, 8, 9, 9], length=6
分次结果:[2, 4, 5, 5, 4, 6, 6, 8, 9, 9], length=5
分次结果:[2, 4, 5, 4, 5, 6, 6, 8, 9, 9], length=4
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=3
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=2
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=1
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=0
最后结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9],num=36


0 0
原创粉丝点击