Facebook
From Sole Madrill, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 251
  1. #include "stdafx.h"
  2. #include "time.h"
  3. #include <iostream>
  4.  
  5. using namespace std;
  6. unsigned long int const n = 200000;
  7.  
  8. void bubblesort(unsigned long int n, float*a)
  9. {
  10.         unsigned long int l, k;
  11.         float p;
  12.         l = n;
  13.         do
  14.         {
  15.                 k = 0;
  16.                 l = l - 1;
  17.                 for (unsigned long int i = 1; i <= l; i++)
  18.                 {
  19.                         if (a[i] > a[i + 1])
  20.                         {
  21.                                 p = a[i]; a[i] = a[i + 1];
  22.                                 a[i + 1] = p; k = k + 1;
  23.                         }
  24.                
  25.                 }
  26.                
  27.         }
  28.         while (k != 0);
  29. }
  30. void insertsort(unsigned long int n, float*a)
  31. {
  32.         unsigned long int l, p, s, k;
  33.         float y, w;
  34.         w = -1, 7E38;
  35.         a[0] = w;
  36.         for (unsigned long int i = 2; i<=n; i++)
  37.         {
  38.                 y = a[i];
  39.                 l = 0; p = i - 1;
  40.                 do
  41.                 {
  42.                         s = (l + p + 1) / 2;
  43.                         if (a[s] <= y) l = s;
  44.                         else p = s - 1;
  45.                 }
  46.                                 while (l != p);
  47.                 k = l;
  48.                 for (unsigned long int j=i-1;j>=k+1;j--)
  49.                 {
  50.                         a[j + 1] = a[j];
  51.                        
  52.                         }
  53.                 a[k + 1] = y;
  54.                 }
  55.         }
  56.  
  57.  
  58. int main()
  59. {
  60.         float *a = new float[n];
  61.         unsigned long int m;
  62.         int k;
  63.         time_t t;
  64.         clock_t tp, tk;
  65.         double tc;
  66.         srand((unsigned)time(&t));
  67.         cout << "podaj liczbe wyrazow ciagu" << endl;
  68.         cin >> m;
  69.         cout << "\n";
  70.         cout << "wylosowany ciag " << endl;
  71.         for (unsigned long int i = 1; i <= m; i++)
  72.         {
  73.                 a[i] = rand() % 10000;
  74.                 cout << a[i] << "\t";
  75.         }
  76.         cout << "\n";
  77.         do
  78.         {
  79.                 cout << "podaj numer metody sortowania" << "\n" << "1-babelkowa" << "\n";
  80.                 cout << "2-sortowanie poprzez wstawianie" << "\n";
  81.                 cin >> k;
  82.                 switch (k)
  83.                 {
  84.                 case 1:
  85.                 {
  86.                         cout << "metoda babelkowa";
  87.                         tp = clock();
  88.                         bubblesort(m, a);
  89.                         tk = clock();
  90.                         tc=(tk - tp) / double(CLOCKS_PER_SEC);
  91.                         cout << "czas sortowania= " << tc << "\n";
  92.                         break;
  93.                 }
  94.                 case 2:
  95.                 {
  96.                         cout << "metoda sortowania przez wstawianie";
  97.                         tp = clock();
  98.                         insertsort(m, a);
  99.                         tk = clock();
  100.                         tc = (tk - tp) / double(CLOCKS_PER_SEC);
  101.                         cout << "czas sortowania= " << tc << "\n";
  102.                         break;
  103.                 }
  104.                 case 0: break;
  105.                 }
  106.                 cout << "ciag posortowany" << endl;
  107.                 for (unsigned long int i = 1; i <= m; i++)
  108.                         cout << a[i] << "\t";
  109.         } while (k != 0);
  110.  
  111.     return 0;
  112. }
  113.