Advertisement
Alweys

lmao algoritmi

Oct 14th, 2020 (edited)
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. #define N 30
  9.  
  10. int polje[N];
  11. char recenica[100];
  12. int brojac = 0;
  13.  
  14. void popuniPolje()
  15. {
  16.     for(int i=0;i<N;i++)
  17.         polje[i] = rand() % 26 + 1;
  18.     cout<<"Prije: \t\t";
  19. }
  20.  
  21. void ispisPolja()
  22. {
  23.     for(int i=0;i<N;i++)
  24.         cout<<polje[i]<<" ";
  25.     cout<<endl;
  26. }
  27.  
  28. void zamijeni(int *a, int *b)
  29. {
  30.     int zamjena = *a;
  31.     *a = *b;
  32.     *b = zamjena;
  33. }
  34.  
  35. void bubbleSort()
  36. {
  37.     for(int i=0;i<N-1;i++)
  38.     {
  39.         bool sortirano = true;
  40.         for(int j=0;j<N-1-i;j++)
  41.         {
  42.             if(polje[j] > polje[j+1])
  43.             {
  44.                 sortirano = false;
  45.                 zamijeni(&polje[j],&polje[j+1]);
  46.             }
  47.         }
  48.         if(sortirano)
  49.             break;
  50.     }
  51.     cout<<"Bubble sort:\t";
  52. }
  53.  
  54. void izmjesajPolje()
  55. {
  56.     for(int i=0;i<100;i++)
  57.     {
  58.         int izmjesaj1 = rand() % 30;
  59.         int izmjesaj2 = rand() % 30;
  60.         zamijeni(&polje[izmjesaj1],&polje[izmjesaj2]);
  61.     }
  62.     cout<<"Izmjesano: \t";
  63. }
  64.  
  65. void selectionSort()
  66. {
  67.     for(int i=0;i<N;i++)
  68.     {
  69.         int min = i;
  70.         for(int j=i+1;j<N;j++)
  71.         {
  72.             if(polje[j] < polje[min])
  73.                 min = j;
  74.         }
  75.         zamijeni(&polje[i],&polje[min]);
  76.     }
  77.     cout<<"Selction sort: \t";
  78. }
  79.  
  80. void zamijeniChar(char *a, char *b)
  81. {
  82.     char zamjena = *a;
  83.     *a = *b;
  84.     *b = zamjena;
  85. }
  86.  
  87. void unesiRecenicu()
  88. {
  89.     cout<<"Unesi recenicu: ";
  90.     gets(recenica);
  91. }
  92.  
  93. void ispisRecenice()
  94. {
  95.     cout<<"Recenica: \t";
  96.     for(int i=0;i<brojac;i++)
  97.     {
  98.         if(recenica[i]!=' ' && recenica[i] != recenica[i+1])
  99.             cout<<recenica[i];
  100.     }
  101.     cout<<endl;
  102. }
  103.  
  104. void prebrojiElemente()
  105. {
  106.     for(int i=0;recenica[i]!='\0';i++)
  107.         brojac++;
  108. }
  109.  
  110. void poredajElemente_u_Recenici()
  111. {
  112.     for(int i=0;i<brojac-1;i++)
  113.     {
  114.         int min = i;
  115.         for(int j=i+1;j<brojac;j++)
  116.         {
  117.             if(recenica[j] < recenica[min])
  118.                 min = j;
  119.         }
  120.         zamijeniChar(&recenica[i],&recenica[min]);
  121.     }
  122. }
  123.  
  124. void binarnoPretrazivanje()
  125. {
  126.     cout<<"Unesi broj: \t";
  127.     int g=29;
  128.     int d=0;
  129.     int unos;
  130.     cin>>unos;
  131.     while(true)
  132.     {
  133.         int s=(d+g)/2;
  134.         if(unos==polje[s])
  135.         {
  136.             cout<<"Broj "<<unos<<" se nalazi u polju"<<endl;
  137.             break;
  138.         }
  139.  
  140.         if(d>g)
  141.         {
  142.             cout<<"Broj "<<unos<<" se ne nalazi u polju"<<endl<<"Pokusaj ponovno: ";
  143.             g=29;
  144.             d=0;
  145.             cin>>unos;
  146.         }
  147.  
  148.         else if(polje[s]<unos)
  149.             d=s+1;
  150.  
  151.         else if(polje[s]>unos)
  152.             g=s-1;
  153.     }
  154. }
  155.  
  156. int main()
  157. {
  158.     srand(time(NULL));
  159.  
  160.     popuniPolje();
  161.     ispisPolja();
  162.     bubbleSort();
  163.     ispisPolja();
  164.     izmjesajPolje();
  165.     ispisPolja();
  166.     selectionSort();
  167.     ispisPolja();
  168.     unesiRecenicu();
  169.     prebrojiElemente();
  170.     poredajElemente_u_Recenici();
  171.     ispisRecenice();
  172.     binarnoPretrazivanje();
  173.  
  174.     return 0;
  175. }
  176.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement