java冒泡排序算法

来源:互联网 发布:oracle .sql如们运行 编辑:程序博客网 时间:2024/05/16 17:10

算法:冒泡排序算法
冒泡排序的运作(从后往前):
第一轮:比较每一对相邻的两个元素,如果第一个比第二个大,就进行交换,最后一个元素则是最大的元素。
第二轮:重复以上步骤,除了最后一个。
·····
第n-1轮···
相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定的排序算法。

手动分析:数  组: 15  2  45  32  56  89   4  15  55  6 第一轮: 2  15  32  45  56  4   15  55  6  89   比较 9 次第二轮: 2  15  32  45  4   15  55  6  56       比较 8 次第三轮: 2  15  32  4   15  45  6   55          比较 7 次第四轮: 2  15  4   15  32  6   45              比较 6 次第五轮: 2  4   15  15  6   32                  比较 5 次第六轮: 2  4   15  6   15                      比较 4 次第七轮: 2  4   6   15                          比较 3 次第八轮: 2  4   6                               比较 2 次第九轮: 2  4                                   比较 1 次   

代码说明:1、外循环控制比较的轮数,内循环控制每轮比较的次数
2、比较的次数是数组长度-1。
3、交换方法有多种,这里使用的是相加的方法(可以使用如:借助第三变量,移位法等)
4、遍历输出我使用的是forearch循环,也可以使用最普通的for循环,如下:

for(int i = 0; i < nums.length-1; i++){    System.out.print(nums[i]+" ");}

源代码:

public class shuzu6 {    public static void main(String[] args) {        int[] nums = {15,2,45,32,56,89,4,15,55,6};        //外循环控制比较的轮数        for (int i = 0; i < nums.length-1; i++) {            for (int j = 0; j < nums.length-1-i; j++) {                if(nums[j]>nums[j+1]){                    nums[j] = nums[j] + nums[j+1];                    nums[j+1] = nums[j] - nums[j+1];                    nums[j] = nums[j] - nums[j+1];                }            }        }        for(int n : nums){            System.out.print(n+" ");        }    }}
原创粉丝点击