// Geoff Hagopian -- Bubble Sort

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>;
using namespace std;

vector<int> initialize(unsigned);
vector<int> bubbleSort(vector<int>);
void print(vector<int>);

int main() {
	srand(time(0));
	vector<int> unordered = initialize(10);
	cout << "A randome sequence of 10 ints:\n";
	print(unordered);
	vector<int> ordered = bubbleSort(unordered);
	cout << "\nThose same ints after bubble sort: \n";
	print(ordered);
	vector<int> newNums{9, 8, 7, 6, 5, 4, 3, 2, 1};
	vector<int> sorted = bubbleSort(newNums);

}

vector<int> initialize(unsigned n) {
	vector<int> v(n);
	for (int i = 0; i < n; ++i)
		v[i] = rand()%100;
	return v;
}

vector<int> bubbleSort(vector<int> v) {
	for (int i = 0; i < v.size(); ++i)
		for (int j = 1; j < v.size() - i; ++j)
			if (v[j - 1] > v[j]) {
				swap(v[j - 1], v[j]);
				print(v);
				cout << endl;
			}
	return v;
}

void print(vector<int> v) {
	for (int i : v) cout << i << " ";
}