BVB Source Codes

Algorithm-Implementations Show cocktail_sort.cpp Source code

Return Download Algorithm-Implementations: download cocktail_sort.cpp Source code - Download Algorithm-Implementations Source code - Type:.cpp
  1. /*
  2. Cocktail Sort (bidirectional bubble sort)
  3. -----------------------------------------
  4. Advantages:
  5.     - stable
  6.     - in-place
  7. Disadvantages:
  8.     - slow for large data sets
  9. Time Complexity:
  10.     - worst:   O(n^2)
  11.     - average: O(n^2)
  12.     - best:    O(n)
  13. Stuff:
  14.     - @ghostsnstuff
  15.     - 1400087249053
  16. */
  17.  
  18. #include<iostream>
  19. #include<vector>
  20. using std::cout;
  21. using std::endl;
  22. using std::vector;
  23.  
  24. template<typename T>
  25. void print(vector<T> l) {
  26.   for (int i=0; i<l.size(); i++) {
  27.     cout << l[i] << " ";
  28.   }
  29.   cout << endl;
  30. }
  31.  
  32. template<typename T>
  33. vector<T> cocktailSort(vector<T> l) {
  34.   bool swapped = false;
  35.   do {
  36.     for(int i=0; i<l.size()-2; i++) {
  37.       if(l[i] > l[i+1]) {
  38.         int temp = l[i];
  39.         l[i] = l[i+1];
  40.         l[i+1] = temp;
  41.         swapped = true;
  42.       }
  43.     }
  44.     if(!swapped) {
  45.       break;
  46.     }
  47.     swapped = false;
  48.     for(int i=l.size()-2; i>0; i--) {
  49.       if(l[i] > l[i+1]) {
  50.         int temp = l[i];
  51.         l[i] = l[i+1];
  52.         l[i+1] = temp;
  53.         swapped = true;
  54.       }
  55.     }
  56.   } while(swapped);
  57.   return l;
  58. }
  59.  
  60. int main() {
  61.   // Testing
  62.   vector<int> l;
  63.   for(int i=10; i>0; i--) {
  64.     l.push_back(i);
  65.   }
  66.   cout << "Unsorted list: ";
  67.   print(l);
  68.   l = cocktailSort(l);
  69.   cout << "Sorted list:   ";
  70.   print(l);
  71.   return 0;
  72. }
  73.  
downloadcocktail_sort.cpp Source code - Download Algorithm-Implementations Source code
Related Source Codes/Software:
raty - 2017-04-22
RDVTabBarController - Highly customizable tabBar and tabBarController fo... 2017-04-22
material-icon-lib - Library containing over 1500 material vector icons... 2017-04-21
httpdiff - Perform the same request against two HTTP servers ... 2017-04-21
jquerytools - The missing UI library for the Web ... 2017-04-21
mcrouter - Mcrouter is a memcached protocol router for scalin... 2017-04-22
dynomite - A generic dynamo implementation for different k-v ... 2017-04-22
kityminder - Baidu brain figure 2017-04-22
llvm - Mirror of official llvm git repository located at ... 2017-04-22
RBBAnimation - Block-based animations made easy, comes with easin... 2017-04-22
ied - 2017-04-29
Nimble - A Matcher Framework for Swift and Objective-C 2017-04-29
MHVideoPhotoGallery - A Photo and Video Gallery 2017-04-29
shoulda-matchers - Collection of testing matchers extracted from Shou... 2017-04-29
Android-SlideExpandableListView - A better ExpandableListView, with animated expanda... 2017-04-29
AppSales-Mobile - App Sales allows iPhone and Mac App Store develope... 2017-04-29
react-templates - Light weight templates for react ... 2017-04-28
afterglow-theme - A minimal dark Theme for Sublime Text 2 and 3 2017-04-28
jwt-go - Golang implementation of JSON Web Tokens (JWT) 2017-04-28
DeerResume - Tool MarkDown online resume, online preview, edit,... 2017-04-28

 Back to top