代码中在第一层循环中增加一个bool值,是为了防止在排序完成后还继续无谓的比较,最多会有(n-1)*(n-2)/2次循环。
1 #include2 using namespace std; 3 void bumbleSort(int a[],int l) 4 { 5 for(int i = 0;i a[j+1])13 {14 if(b)15 b = false;16 int temp = a[j];17 a[j] = a[j+1];18 a[j+1] = temp;19 }20 21 }22 if(b)23 break;24 }25 }26 int main()27 {28 int a[6] = { 9,-9,3,-3,0,0};29 for(int i = 0;i<6;i++)30 cout< <<" ";31 32 bumbleSort(a,6);33 for(int i = 0;i<6;i++)34 cout< <<" ";35 cout<