集合冒泡排序和倒序

文章介绍了如何在Java中使用冒泡排序算法对数组和集合进行排序。对于数组,展示了从大到小和从小到大的排序实现;对于集合,重点在于使用get和set方法进行元素交换,并提到了Collections.sort()作为更简洁的排序方式。
摘要由CSDN通过智能技术生成

 在数组中我们可以使用冒泡排序来给数组中的值排序 那么在集合中也大同小异,只是所使用的方法不同,那么让我们来看看吧。

首先让我们来看看在数组中是如何使用冒泡排序

public class Text03 {
    public static void main(String[] args) {
        int[] num={10,21,5,101,99};

        //从大到小
        for (int j=0;j<num.length;j++)
        {
            for (int i=0;i<num.length-1-j;i++)
            {
                if (num[i]>num[i+1])
                {
                    //比大小 给两个值互换位置
                    int k=num[i];
                    num[i]=num[i+1];
                    num[i+1]=k;
                }
            }
        }

        //从小到大
        System.out.println("从小到小排列顺序是"+"");
        for (int i=0;i<num.length;i++)
        {
            System.out.print(num[i]+" ");
        }
        for (int i=0;i<num.length;i++)
        {
            for (int j=0;j<num.length-1-i;j++)
            {
                if (num[j]<num[j+1])
                {
                    int k=num[j];
                    num[j]=num[j+1];
                    num[j+1]=k;
                }
            }
        }
        System.out.println("\n从大到小排列顺序是"+"");
        for (int i=0;i<num.length;i++)
        {
            System.out.print(num[i]+" ");
        }
    }
}

可以从中看到冒泡排序只需要用两个for循环便可以实现从大到小 / 从小到大的排序详情请看注释

接下来让我们看看集合中如何使用冒泡排序

 

public class Text01 {
    public static void main(String[] args) {
        //定义集合 这里需要给List添加泛型 否则下面的list的数据类型就是object
        List<Integer> list=new ArrayList();

        System.out.println("请输入10位数");
        //for循环
        for (int i=0;i<10;i++){
            Scanner scanner=new Scanner(System.in);
            int s=scanner.nextInt();
            list.add(s);
        }
        //和数组一样,冒泡排序。
        for (int i=0;i<10;i++){
            for (int j=i+1;j<10;j++){
                //因为数组和集合不同 集合需要使用get方法来获取list的下标元素
                if (list.get(i)>list.get(j)){
                    //将第一个值赋给第二个,然后再将第二个值给第一个
                    int temp=list.get(i);
                    //set是list的方法, 具体用法: list.set(a,b)= b=a
                    list.set(i,list.get(j));
                    //这里同理
                    list.set(j,temp);
                }
            }
        }
        //最后输出就好了
        System.out.println(list);
        
        
        
        
        //其实使用这两行集合自带的方法就可以代替上面的一大堆代码
//        Collections.sort(list);     //排序
//        Collections.reverse(list);  //从大到小

        
        //这是冒泡排序的简单逻辑 不懂的可以看看这个 照着这个写
//        int a = 1;
//        int b = 2;
//        if (a<b){
//            int temp=a;
//            a=b;
//            b=temp;

//        }
//        System.out.println(a);
//        System.out.println(b);
        
       
    }
}

如果有帮助到您 希望可以给我点个赞评论一下  谢谢啦

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值