冒泡排序算法
阿新 • • 發佈:2017-09-15
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]); } }
方法調用
publicstatic 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 = newArrayList<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; } }
冒泡排序算法