#include <iostream> #include <algorithm> using namespace std ; int main() { int t ; cin >> t ; while(t--) { int l ; cin >> l ; int tr[l] ; for ( int i = 0 ; i < l ;++i) cin >>tr[i] ; int cnt = 0 ; for ( int i = 0 ; i < l ;++i) for (int j = 1 ; j < l-i; ++j) if(tr[j-1] > tr[j]) { ++cnt ; swap(tr[j-1] ,tr[j]) ; } cout << "Optimal train swapping takes " << cnt << " swaps." << endl ; } return 0 ; }
计算 冒泡排序的次数
冒泡排序
void Bubble_sort( int A[] , int n) { int cnt = 0 ; for ( int i = 0 ; i < n; ++i) for ( int j =1 ; j < n- i ;++j) if(A[j-1] > A[j]) { ++cnt ; swap(A[j-1],A[j]) ; } }