#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>

using namespace std;

/**
for i = 1 to N,
    for j = 1 to N-i
        if x[j]>x[j+1]
            swap(x[j],x[j+1])
*/

int bubbleSort(vector<int>& v) {
    int swaps{0};
    for(int i = 0; i < v.size(); ++i)
        for(int j = 0; j < v.size()-i-1; ++j)
            if(v[j]>v[j+1]) {
                swap(v[j],v[j+1]);
                ++swaps;
            }
    return swaps;
}

void show(vector<int>& v) {
    for(int i:v) cout << i << " ";
}

void initializeV(int N, vector<int>& v, bool randm = 1) {
    if(randm) {
        for(int i = 0; i < v.size(); ++i) v[i]=(rand()%10000);
    }
    else for(int i = 0; i < N; ++i) {
        cout << "\nEnter c[" << i << "] = ";
        cin >> v[i];
    }
}




int main() {

    int N{100};

    vector<int> v(N);

    int sumSwaps{0};

    for(int n = 0; n < 1000; ++n) {

        initializeV(N,v);

        sumSwaps += bubbleSort(v);

    }

    cout << "\nThe percentage of swaps = " << double(sumSwaps)/(1000*N);

    return 0;

}

