Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. #include <fstream>
  5. using namespace std;
  6.  
  7. int znajdzKandydata(int a[], int rozmiar)
  8. {
  9. int maj_index = 0; //numer indeksu liczby dominujacej
  10. int count = 1;
  11. int i;
  12. for(i=1; i<rozmiar; i++)
  13. {
  14. if(a[maj_index] == a[i])
  15. count++;
  16. else
  17. count--;
  18. if(count == 0)
  19. {
  20. maj_index = i;
  21. count = 1;
  22. }
  23. }
  24. return a[maj_index];
  25. }
  26.  
  27. bool czyDominujacy(int a[], int rozmiar, int kand)
  28. {
  29. int i;
  30. int count = 0;
  31. for(i=0; i<rozmiar; i++)
  32. if(a[i]==kand)
  33. count++;
  34. if(count>rozmiar/2)
  35. return 1;
  36. else
  37. return 0;
  38. }
  39.  
  40. void wypiszDominujaca(int a[], int rozmiar)
  41. {
  42. int kand = znajdzKandydata(a, rozmiar);
  43. if(czyDominujacy(a, rozmiar, kand))
  44. {
  45. cout << "Element domunujacy to: "<<kand<<endl;
  46. }
  47. else
  48. cout << "Brak elementu dominujacego \n";
  49. }
  50.  
  51. int main()
  52. {
  53. srand(time(NULL));
  54. int n, i, k;
  55. cout << "Podaj rozmiar tablicy " << endl;
  56. cin >> n;
  57. int tab[n];
  58. string nazwa = "wynik.txt";
  59. ofstream wyjscie(nazwa.c_str());
  60. for(k=0; k<=n; k+=1000)
  61. {
  62. for(i=0; i<k; i++)
  63. {
  64. tab[i] = rand()%2;
  65. //cout << tab[i] << " ";
  66. }
  67. cout << endl;
  68. clock_t start, koniec;
  69. start = clock();
  70. wypiszDominujaca(tab, k);
  71. koniec = clock();
  72. long delta = (long)(koniec - start);
  73. cout << "Czas wykonania operacji to " << delta << "s";
  74. cout<<"\n";
  75. wyjscie << k << " Czas Trwania: " << delta << ";" << endl;
  76. }
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement