八大算法~冒泡排序【加變量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 做用是爲了優化算法,提高效率,,從第一個位置開始沒有發生交換,說明後座都已經被對應實力的大數佔完,沒必要再爲大數找後座了