1. 程式人生 > >java資料結構和演算法 第3章 簡單排序

java資料結構和演算法 第3章 簡單排序

氣泡排序、選擇排序、插入排序


public class SortDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] a={1,5,6,9,20,56,32,45};
        bubbleSort(a);
        System.out.println();
        int[] b={15,4,89,63,25};
        selectSrot(b);
        System.out.println();
        int
[] c={46,41,748,15,4,5}; insertSort(c); } //氣泡排序 public static void bubbleSort(int[] a){ for (int i = 0; i < a.length-1; i++) { for (int j = i+1; j < a.length; j++) { if(a[i]>a[j]){ int b=a[i]; a[i]=a[j]; a[j]=b; } } } for
(int i : a) { System.out.print(i+" "); } } //選擇排序 public static void selectSrot(int[] a){ int minIndex = 0; for (int i = 0; i < a.length; i++) { minIndex=i; for (int j = i+1; j < a.length; j++) { if(a[j]<a[minIndex]){ minIndex=j; } } if
(minIndex!=i){ int b=a[i]; a[i]=a[minIndex]; a[minIndex]=b; } } for (int i : a) { System.out.print(i+" "); } } //插入排序 public static void insertSort(int[] a){ int i; //j前的位置 int j; //當前值的位置 int key; //要插入的值 //從陣列的第二個位置開始遍歷值 for(j=1;j<a.length;j++){ key=a[j]; i=j-1; //a[i]比當前值大時,a[i]後移一位,空出i的位置,好讓下一次迴圈的值後移 while(i>=0 && a[i]>key){ a[i+1]=a[i]; //將a[i]值後移 i--; //i前移 }//跳出迴圈(找到要插入的中間位置或已遍歷到0下標) a[i+1]=key; //將當前值插入 } for (int k : a) { System.out.print(k+" "); } } }