簡單排序之冒泡排序,選擇排序,插入排序

簡單排序之冒泡排序,選擇排序,插入排序

1.冒泡排序,運行時間O(N^2)(N^2次比較,N^2次交換)

public void sort(){
    int in,out;
    for(out=nElems-1;out<1;out--){
        for(in=0;in<out;in++){
            if(a[in]>a[i+1]){
                swap(in,in+1);
            }
        }
    }
}

2.選擇排序,運行時間O(N^2)(N^2次比較,N次交換)—–更快

public void selectSort(){
    int in,out,min;
    for(out=0;out<nElems-1;out++){
        min=out;
        for(in=out+1;in<nElems;in++){
            if(a[in]<a[min])
                min=in;
        }
        swap(min,out);
    }
}       

3.插入排序,運行時間O(N^2)—–數組基本有序時更更快

public void insertSort(){
    int in,out;
    for(out=1;out<nElems;out++){
        long temp=a[out];
        in=out;
        while(in>0&&a[in]>=temp){
            a[in]=a[in-1];
            --in;
        }
        a[in]=temp;
    }
}       
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章