氣泡排序 優化

2021-08-20 11:49:00 字數 1336 閱讀 1731

氣泡排序:

1.氣泡排序的基本思想:

假設待排序的表長是n,從後向前(或者從前向後)兩兩的比較相鄰兩個元素之間的大小,若為逆序(即arr[i]>arr[i+1]),交換他們,一直到序列結束。我們稱之為一趟氣泡排序,結果將最大的元素交換到待排序序列中的第最後個位置(最小元素類似氣泡在水中逐漸上浮,直到水面結束)。下一趟冒泡,之前確定的最大元素不在進行比較,待排序序列就減少了乙個元素,每一次把序列中最大的元素放到了序列的最終的位置,... ... ,這樣最多就做(n-1)次氣泡排序就可把所有的元素排好順序。

void bubblesort(int* arr,int len)

} //若未進行交換說明陣列是順序的 直接彈出

if(temp == 0)

return ; }

}

方法二:減少迴圈次數:

首先設定標識n,迴圈最大次數k = (len-1),將交換的最後次序賦值給n,記錄最後交換次序,再將交換次序賦值給最大迴圈次數,因為在交換後的最後一位以後的數字都是有序的,所以不用進行交換操作,即不必迴圈多次進行後續比較。

例如: 初始:         6 5 4 7 8

第一次:     5 4 6 7 8 使用n來記錄最後的交換順序即是4的位置

第二次:     4 5 6 7 8   第二次就僅僅進行n次就可以得到最後想要的順序

void bubblesort2(int arr,int len)

}k = n;//將位置賦值給最後的迴圈次數

if(temp == 0)

return ;

}}

完整**:

#includeusing namespace std;

void bubblesort2(int arr,int len)

}k = n;

if(temp == 0)

return ;}}

int main()

; //原來順序:

氣泡排序 氣泡排序演算法優化

常用的排序演算法主要包括 1 插入排序 直接插入排序 希爾排序 2 交換排序 氣泡排序 快速排序 3 選擇排序 簡單選擇排序 堆排序快速排序 4 歸併排序其中,氣泡排序算是最簡單的一種排序演算法 public class bubble int temp 0 for int i 0 iarr j 1 ...

優化氣泡排序

氣泡排序 bubble sort 重複遍歷需要排序的數列,依次比較兩個元素,如果順序錯誤就進行交換,直到不再需要交換為止。演算法步驟如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所有的元...

氣泡排序優化

氣泡排序優化 氣泡排序思想 內層迴圈數字兩兩比較,並交換,最後乙個數字成為最大數字 外層迴圈控制迴圈次數,不在將最後一位參與交換 冒泡改進 若內層迴圈沒有進行過一次交換,說明陣列已經有序,直接break 不需要再進行迴圈 includeusing namespace std int main int...