冒泡排序算法

冒泡排序算法:

第一次排序依次比较相邻的两个数,第n个数与n+1个数比较,n大则n和n+1交换,否则继续比较n+1与n+2........最后最大的数会沉底。

第二次排序。。。。。。。。。。次大的数会沉底

第n躺后排序完成。

冒泡排序算法:bubbleSort

public static void bubbleSort(int a[]){
        for (int i = a.length; i > 0; i--) {
            for(int j=0;j<i-1;j++){
                int temp=a[j];
                if(a[j]>a[j+1]){
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
    }
    public static void printSortData(int a[]){
        for (int i =0; i<a.length; i++){
            System.out.println(a[i]);
        }
    }

方法调用

public static void main(String args[]){

int []a={1,9,10,5,3,6,56,4};
        bubbleSort(a);
        printSortData(a);
}

结果如上图。时间复杂度n^2

测试类

import java.util.ArrayList;
import java.util.List;

public class Aaa {
    public static void main(String args[]) {
        List<Person> array = new ArrayList<Person>();
        array.add(new Person("张三", 12));
        array.add(new Person("aa", 15));
        array.add(new Person("ww", 98));
        array.add(new Person("lisi", 50));
for (int i = array.size(); i > 0; i--) { for(int j=0;j<i-1;j++){ Person p=array.get(j); if(array.get(j).getAge()<array.get(j+1).getAge()){ array.set(j, array.get(j+1)); array.set(j+1,p); } } } for (int i = array.size()-1; i >= 0; i--){ System.out.println(array.get(i).getAge()); } } }

person.java

public class Person {

    public int age;
    public String name;
    public Person(){
        
    }
    public Person(String name,int age) {
        this.age = age;
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
}
原文地址:https://www.cnblogs.com/gne-hwz/p/7523769.html