冒泡排序

找工作面試時永遠少不了一種題目,就是排序,而各種排序中冒泡排序又是被問道次數最多的一種。那麼,真的懂冒泡排序麼?

一般我們會這樣寫

for(i=0;i<len(L);i++)
    for (j=i;j<len(L);j++)
        if(L[i]>L[j])
            swap(L,i,j);

但是正宗的冒泡排序是這樣的

for(i=0;i<len(L);i++)
    for (j=len(L)-2;j>i;j--)
        if(L[j]>L[j+1])
            swap(L,j,j+1);

我們還可以這樣優化

bool flag=True;
for(i=0;i<len(L)&&flag;i++){
    flag=False;
    for (j=len(L)-2;j>i;j--)
        if(L[j]>L[j+1]){
            swap(L,j,j+1);
            flag=True;
        }
}

 
發佈了19 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章