Advertisement
dzieciol

algorytmy 2

Mar 4th, 2016
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5.  
  6. int *tw_tab (int r){
  7.     int i;
  8.     int *wsk;
  9.     wsk=malloc(r*sizeof(int));
  10.     for (i=0;i<r;i++){
  11.         printf("t[%d]=",i+1);
  12.         scanf("%d",&wsk[i]);
  13.  
  14.     }
  15. return wsk;
  16. }
  17.  
  18. void BubbleSort(int *tab,int n){
  19.     int i,j,temp;
  20.      for(j=n-1;j>0;j--){
  21.         for(i=0;i<j;i++){
  22.             if(tab[i]>tab[i+1]){
  23.                 temp=tab[i];
  24.                 tab[i]=tab[i+1];
  25.                 tab[i+1]=temp;
  26.  
  27.             }
  28.  
  29.         }
  30.     }
  31. }
  32.  
  33. void InsertSort(int *tab,int n) {
  34.         int i,temp,j;
  35.         for (i=0;i<n;i++){
  36.     temp = tab[i];
  37.     j=i-1;
  38.     while (temp<=tab[j] && j>=0){
  39.         tab[j+1]=tab[j];
  40.         j--;
  41.     } tab[j+1]=temp;
  42. }
  43.     }
  44. void SelectionSort(int *tab,int n)
  45.     {
  46.         int i,j,temp;
  47.     int max;
  48. for (i=n;i>0;i--){
  49.     max=tab[i];
  50.     for (j=0;j<=i;j++)
  51. {
  52.   if (tab[j]>max){temp=max;max=tab[j];tab[j]=temp;}
  53. }tab[i]=max;
  54.    
  55.     }
  56. }
  57.  
  58. void QuickSort(int *tab,int p,int k){
  59.         int x=tab[p];
  60.         int i,j,temp;
  61.         i=p;
  62.         j=k;
  63.         do
  64.         {
  65.         while (tab[i] < x) i++;
  66.         while (tab[j] > x) j--;
  67.         if (i<=j){
  68.             temp=tab[i];
  69.             tab[i]=tab[j];
  70.             tab[j]=temp;
  71.             ++i;
  72.             --j;
  73.         }
  74.         }while(i<j);
  75.        
  76.        
  77.         if(p<j) QuickSort(tab,p,j);
  78.         if(k>i) QuickSort(tab,i,k);
  79.        
  80.     }
  81.     void bisekcja(int *tab,int sz, int l,int p){
  82.     int sr=(l+p)/2;
  83.     if(sz==tab[sr]) printf("szukany element znajduje się w tablicy na miejscu %d \n",sr+1);
  84.     else if(sz>tab[sr] && l<p){bisekcja(tab,sz,sr+1,p);}
  85.     else if(sz<tab[sr] && l<p)bisekcja(tab,sz,l,sr-1);
  86.     else printf("szukanego elementu niema w tablicy :( \n");   
  87.  
  88.    
  89.     }
  90.  
  91. int main(int argc, char *argv[]) {
  92.     int n,temp;
  93.     printf("ile elementów chcesz wprowadzić i posortować");
  94.     scanf("%d",&n);
  95.     int *tab_wsk;
  96.     tab_wsk=tw_tab(n);
  97.     BubbleSort(tab_wsk,n);
  98.     //InsertSort(tab_wsk,n);
  99.     //SelectionSort(tab_wsk,n);
  100.     //QuickSort(tab_wsk,0,n);
  101.     int zn;
  102.     printf("podaj szukany element");
  103.     scanf("%d",&zn);
  104.     bisekcja(tab_wsk,zn,0,n);
  105.     int i;
  106.     for(i=0;i<n;i++)
  107.     {
  108.         printf("%d \n",tab_wsk[i]);
  109.     }
  110.    
  111.     return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement