八大排序算法~冒泡排序【加變量flag的做用】

八大算法~冒泡排序【加變量flag的做用】算法

  1,冒泡排序思想:從第一個數開始找,要把大數「排除在外」~爲大數找後座。優化

  外層循環~須要放後的大數個數;
    內循環~從第一個數拿起與後面位置的數兩兩比較,實力強的佔的位置靠後。

2,flag變量做用:優化算法,提高效率,從第一個位置開始沒有發生交換,
說明後座都已經被對應實力的大數佔完,沒必要再爲大數找後座了。

void BubbleSort(int a[],int n){
    int temp;
    boolean flag = true;   // 此處flag變量的設置能夠提升算法的效率
    //冒泡思想:從第一個數開始找,要把大數「排除在外」~爲大數找後座
    for(int i = 0; i < n - 1; i++){ //外層循環~須要放後的大數個數
      flag = true;
      for(int j = 0; j < n - 1 - i; j++){//內循環~從第一個數拿起與後面位置的數兩兩比較,實力強的佔的位置靠後
        if(a[j] > a[j + 1]){
          flag = false;
          temp = a[j];
          a[j] = a[j+1];
          a[j+1] = temp;
        }
      }
      if(flag==true) break;
    }
}
//flag 做用是爲了優化算法,提高效率,,從第一個位置開始沒有發生交換,說明後座都已經被對應實力的大數佔完,沒必要再爲大數找後座了 
相關文章
相關標籤/搜索