int bubbleSort(vector<int> *a, int n) { //cout<<a->at(1)<<endl; int totalSwap = 0; for (int i = 0; i < n; i++) { // Track number of elements swapped during a single array traversal int numberOfSwaps = 0; for (int j = 0; j < n - 1; j++) { // Swap adjacent elements if they are in decreasing order if (a->at(j) > a->at(j+1)) { swap(a->at(j), a->at(j+1)); numberOfSwaps++; } } totalSwap += numberOfSwaps; // If no elements were swapped during a traversal, array is sorted if (numberOfSwaps == 0) { break; } } return totalSwap; } int main(){ int n; cin >> n; vector<int> a(n); for(int a_i = 0;a_i < n;a_i++){ cin >> a[a_i]; } cout<<"Array is sorted in "<<bubbleSort(&a, n)<<" swaps."<<endl; cout<<"First Element: "<<a[0]<<endl; cout<<"Last Element: "<<a[n-1]<<endl; return 0; }
Friday, 21 October 2016
Bubble Sort (CTCI)
Problem: Bubble Sort
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment