Facebook
From Mrkazik99, 3 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 204
  1. #include <stdio.h>
  2. #include <time.h>
  3.  
  4. int arr1[30000], porownan, zmian;
  5.  
  6. void randomArray (int index) {
  7.     for (int i=0;i<index;i++) {
  8.         arr1[i]=rand()%10000;
  9.     }
  10.     return;
  11. }
  12.  
  13. int partition(int arr[], int low, int high) {
  14.     int help;
  15.     int pivot = arr[high];
  16.     int i = (low-1);
  17.     for (int j = low; j <= high- 1; j++)
  18.     {
  19.         if (arr[j] < pivot)
  20.         porownan++;
  21.         {
  22.             i++;
  23.             help = arr[i];
  24.             arr[i] = arr[j];
  25.             arr[j] = help;
  26.             zmian++;
  27.         }
  28.     }
  29.     help = arr[i+1];
  30.     arr[i+1] = arr[high];
  31.     arr[high] = help;
  32.     zmian++;
  33.     return (i + 1);
  34. }
  35.  
  36. void quickS (int arr[], int low, int high) {
  37.     int q;
  38.     if(low < high){
  39.         q = partition(arr, low, high);
  40.         quickS(arr, low, q-1);
  41.         quickS(arr, q+1, high);
  42.     }
  43.     return;
  44. }
  45.  
  46. int main() {
  47.     for(int i=1000;i<=30000;i+=1000) {
  48.         porownan=0;
  49.         zmian=0;
  50.         randomArray(i);
  51.         quickS(arr1,0,  i);
  52.         printf("#%d Wykonano zmian: %d oraz porownan: %d\n", i, zmian, porownan);
  53.     }
  54.     /*porownan=0;
  55.     zmian=0;
  56.     randomArray(20);
  57.     for(int i=0;i<=20;i++) {
  58.         printf("%d, ", arr1[i]);
  59.     }
  60.     printf("\n");
  61.     quickS(arr1,0,  20);
  62.     for(int i=0;i<=20;i++) {
  63.         printf("%d, ", arr1[i]);
  64.     }
  65.     printf("Wykonano zmian: %d oraz porownan: %d", zmian, porownan);*/
  66.     return 0;
  67. }
  68.