1. 程式人生 > >冒泡排序算法

冒泡排序算法

arraylist out 完成 nts tag clas es2017 sys img

冒泡排序算法:

第一次排序依次比較相鄰的兩個數,第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;
    }
    
}

冒泡排序算法