Advertisement
dzieciol

algorytmy sortowania

Mar 4th, 2016
511
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 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. {
  20.     int i,j,temp;
  21.      for(j=n-1;j>0;j--){
  22.         for(i=0;i<j;i++){
  23.             if(tab[i]>tab[i+1]){
  24.                 temp=tab[i];
  25.                 tab[i]=tab[i+1];
  26.                 tab[i+1]=temp;
  27.  
  28.             }
  29.  
  30.         }
  31.     }
  32. }
  33.  
  34. void InsertSort(int *tab,int n)
  35.     {
  36.         int i,temp,j;
  37.         for (i=0;i<n;i++){
  38.     temp = tab[i];
  39.     j=i-1;
  40.     while (temp<=tab[j] && j>=0){
  41.         tab[j+1]=tab[j];
  42.         j--;
  43.     } tab[j+1]=temp;
  44. }
  45.     }
  46. void SelectionSort(int *tab,int n)
  47.     {
  48.         int i,j,temp;
  49.     int max;
  50. for (i=n;i>0;i--){
  51.     max=tab[i];
  52.     for (j=0;j<=i;j++)
  53. {
  54.   if (tab[j]>max){temp=max;max=tab[j];tab[j]=temp;}
  55. }tab[i]=max;
  56.    
  57.     }
  58. }
  59.  
  60. void QuickSort(int *tab,int p,int k)
  61.     {
  62.         int x=tab[p];
  63.         int i,j,temp;
  64.         i=p;
  65.         j=k;
  66.         do
  67.         {
  68.         while (tab[i] < x) i++;
  69.         while (tab[j] > x) j--;
  70.         if (i<=j){
  71.             temp=tab[i];
  72.             tab[i]=tab[j];
  73.             tab[j]=temp;
  74.             ++i;
  75.             --j;
  76.         }
  77.         }while(i<j);
  78.        
  79.        
  80.         if(p<j) QuickSort(tab,p,j);
  81.         if(k>i) QuickSort(tab,i,k);
  82.        
  83.     }
  84.  
  85. int main(int argc, char *argv[]) {
  86.     int n,temp;
  87.     printf("ile elementów chcesz wprowadzić i posortować");
  88.     scanf("%d",&n);
  89.     int *tab_wsk;
  90.     tab_wsk=tw_tab(n);
  91.     //BubbleSort(tab_wsk,n);
  92.     //InsertSort(tab_wsk,n);
  93.     //SelectionSort(tab_wsk,n);
  94.     QuickSort(tab_wsk,0,n);
  95.     int i;
  96.     for(i=0;i<n;i++)
  97.     {
  98.         printf("%d \n",tab_wsk[i]);
  99.     }
  100.    
  101.     return 0;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement