Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include<iostream>
  2. #include<time.h>
  3. #define N 100000
  4. using namespace std;
  5. void kiir(int a[], int n);
  6. void InsertionSort(int a[], int n);
  7. void SelectionSort(int a[], int n);
  8.  
  9. void main() {
  10. int a[N], v;
  11. cout << "Best case(1) / Worst Case(2)\n";
  12. cin >> v;
  13. clock_t start, stop;
  14. switch (v) {
  15. case 1: {
  16. for (int i = 0; i < N; ++i) {
  17. a[i] = i;
  18. }
  19. break;
  20. }
  21. case 2: {
  22. for (int i = 0; i < N; ++i) {
  23. a[i] = N - i - 1;
  24. }
  25. break;
  26. }
  27. }
  28. int r;
  29. cout << "\n1.Insertion Sort\n2.Selection sort\n";
  30. cin >> r;
  31. switch (r) {
  32. case 1: {
  33. start = clock();
  34. InsertionSort(a, N);
  35. stop = clock();
  36. break;
  37. }
  38. case 2: {
  39. start = clock();
  40. SelectionSort(a, N);
  41. stop = clock();
  42. }
  43. }
  44. kiir(a, N);
  45. double ido = stop - start;
  46. ido /= CLOCKS_PER_SEC;
  47. cout << ido;
  48. }
  49.  
  50. void kiir(int a[], int n) {
  51. int i;
  52. for (i = 0; i < n; ++i) {
  53. cout << a[i] << " ";
  54. }
  55. cout << endl;
  56. }
  57. void InsertionSort(int a[], int n) {
  58. int i, k, j;
  59. for (i = 1; i < n; ++i) {
  60. k = a[i];
  61. j = i - 1;
  62. while (j >= 0 && a[j] > k) {
  63. a[j + 1] = a[j];
  64. --j;
  65. }
  66. a[j + 1] = k;
  67. }
  68. }
  69. void SelectionSort(int a[], int n) {
  70. int i, j, k;
  71. for (i = 0; i < N - 1; ++i) {
  72. k = i;
  73. for (j = i + 1; j < n; ++j)
  74. if (a[j] < a[k])
  75. k = j;
  76. int temp = a[k];
  77. a[k] = a[i];
  78. a[i] = temp;
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement