fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <chrono>
  4. #include <cstdlib>
  5. #include <ctime>
  6. using namespace std;
  7. struct Timer {
  8. std::chrono::high_resolution_clock::time_point start;
  9. Timer() : start(std::chrono::high_resolution_clock::now()) {}
  10. ~Timer() {
  11. auto stop = std::chrono::high_resolution_clock::now();
  12. auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(stop - start);
  13. std::cout << "Time: " << duration.count() << " ms\n";
  14. }
  15. };
  16.  
  17. template<typename T>
  18. void bubble(vector<T>& arr){
  19. Timer t;
  20. int n = arr.size();
  21. for(int i=0; i<n-1; i++){
  22. for(int j=0; j<n-i-1; j++){
  23. if(arr[j]> arr[j+1]){
  24. T temp = arr[j];
  25. arr[j] = arr[j+1];
  26. arr[j+1] = temp;
  27. }
  28. }
  29. }
  30. }
  31. template<typename T>
  32. void print(vector<T>& arr){
  33. for(int i=0; i< arr.size(); i++){
  34. cout << arr[i] << " ";
  35. }
  36. cout << endl;
  37. }
  38. int main() {
  39. int n;
  40. cin>>n;
  41. vector<int> arr(n);
  42. for(int i=0; i<n; i++){
  43. cin >> arr[i];
  44. }
  45. bubble(arr);
  46. print(arr);
  47. srand(time(0));
  48. vector<int> arr1(100);
  49. for(int i=0; i<100; i++){
  50. arr1[i] = rand() % 100;
  51. }
  52. bubble(arr1);
  53. bubble(arr1);
  54. print(arr1);
  55. vector<int> arr2(30000);
  56. for(int i=0; i<30000; i++){
  57. arr2[i] = rand() % 1000;
  58. }
  59. bubble(arr2);
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 1.2s 5320KB
stdin
6
059 6 4 585 2 54
stdout
Time: 0 ms
2 4 6 54 59 585 
Time: 0 ms
Time: 0 ms
0 0 0 1 1 2 5 5 5 6 6 8 9 10 10 10 12 12 14 14 14 17 18 23 24 25 26 26 28 29 30 30 30 31 32 32 32 32 34 36 37 38 38 38 38 39 39 40 44 45 47 47 51 52 53 53 54 54 55 56 56 56 58 58 60 61 62 62 63 64 66 67 69 70 70 72 73 74 74 76 77 77 77 78 78 78 79 82 88 88 90 91 92 92 92 96 96 97 97 98 
Time: 1203 ms