经典算法:冒泡排序

 题目从小到大排序数组   {6,3,8,2,9,1}

原理:小的数放左边,大的数放右边。

思路:利用  ”for 循环“ 将第一个数与第二个数作比较,如果第一个数比第二个数大则对调位置,反之则不改变。进行下一个判断

          “for 循环”的嵌套循环。

外层循环控制排序的趟数:  for(int i = 0;i < arr.length - 1;i++)  

趟数为需要排序的字符多少,没进行一趟,则排出一个最大值。

内层循环控制每一趟排序的次数:for(int j = 0;j < arr.length - 1 - i;j++)

每一趟排出一个最大值,相应的趟内少排序一次。

第一趟排序:

第一次:6与3比较,6大于3,对调位置       {3,6,8,2,9,1}

第二次:6与8比较,6不大于8,不做调换   {3,6,8,2,9,1}

第三次:8与2比较,8大于2 ,对调位置      {3,6,2,8,9,1}

第四次:8与9比较,8不大于9,不做对调    {3,6,2,8,9,1}

第五次:9与1比较,9大于1,对调位置       {3,6,2,8,1,9}

第二趟排序:

第一次:3与6比较,不做对调        {3,6,2,8,1,9}

第二次:6与2比较,对调位置        {3,2,6,8,1,9}

第三次:6与8 比较,不做对调       {3,2,6,8,1,9}

第四次:8与1比较,对调位置        {3,2,6,1,8,9}

第三趟排序:

第一次:3与2 比较,对调位置       {2,3,6,1,8,9}

..................

第五趟排序:

第一次:2与1比较,对调位置        {1,2,3,6,8,9}

.......................................................................................................................................................................................................

遍历:两个代码为相等的!!!

==  int[] arr = new int[]{6, 4, 8};
    for (int num  = 0; num < arr.length; num++){
        System.out.println(arr[num] );
    }

==  for (int num : arr) {
       System.out.println(num);
    }

 

 具体代码

public class maopaopaixu {
    public static void main(String[] args) {
        int[] arr={6,3,8,2,9,1};
        System.out.println("排序前数组为:");
        for (int num  = 0; num < arr.length; num++){
            System.out.print(num+" ");
        }
        for(int i = 0;i < arr.length - 1;i++){//外层循环控制排序趟数
             for(int j = 0;j < arr.length - 1 - i;j++){//内层循环控制每一趟排序多少次
            if(arr[j] > arr[j + 1]){
             int temp = arr[j];
             arr[j] = arr[j + 1];
             arr[j + 1] = temp;
            }
            }
        }
        System.out.println();
        System.out.println("排序后的数组为:");
        for (int num  = 0; num < arr.length; num++){
            System.out.print(num+" ");
        }
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值