java冒泡排序

冒泡排序

在这里插入图片描述

package cn.usts.edu.arrayList;

import java.util.ArrayList;

/**
 * @author :fly
 * @description: // 冒泡排序
 * @date :2021/11/2 12:54
 */
public class SortMaoPao {
    public static void main(String[] args) {
        Book book1 = new Book("三国", 15.5f, "施耐庵");
        Book book2 = new Book("水浒",55.8f,"罗贯中");
        Book book3 = new Book("西游",19.6f,"吴承恩");
        Book book4 = new Book("红楼",78.1f,"曹雪芹");

        ArrayList aList = new ArrayList();
        aList.add(book1);
        aList.add(book2);
        aList.add(book3);
        aList.add(book4);

        aList.forEach(obj -> System.out.println(obj));

        System.out.println("=============排序后==============");
        sort(aList);
        aList.forEach(obj -> System.out.println(obj));

    }

    // 冒泡排序
    public static void sort(ArrayList arrayList){
        int size = arrayList.size();
        for (int i=0; i<size-1;i++){ // 比较的次数
            for (int j=0;j<size-i-1;j++){ // 比较的元素
                Book book1 =(Book) arrayList.get(j);
                Book book2 =(Book) arrayList.get(j+1);
                if (book1.getPrice()>book2.getPrice()){
                    arrayList.set(j,book2);
                    arrayList.set(j+1,book1);
                }
            }
        }
    }
}


class Book{
    private String name;
    private float price;
    private String auth;

    @Override
    public String toString() {
        return  "名称:" + name +
                "\t 价格:" + price +
                "\t 作者:" + auth;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public String getAuth() {
        return auth;
    }

    public void setAuth(String auth) {
        this.auth = auth;
    }

    public Book() {
    }

    public Book(String name, float price, String auth) {
        this.name = name;
        this.price = price;
        this.auth = auth;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值