Facebook
From Mammoth Peafowl, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 233
  1. // ConsoleApplication7.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
  2. //
  3.  
  4. #include "pch.h"
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. void printtab(int tab[], int size) {
  10.         for (int i = 0; i < size; i++)
  11.         {
  12.                 cout << tab[i] << " ";
  13.         }
  14. }
  15. int zad2(int tab[], int size, int el)
  16. {
  17.         if (tab[size]==el)
  18.         {
  19.                 return size;
  20.         }
  21.         else if (size>0)
  22.         {
  23.                 zad2(tab, size - 1, el);
  24.         }
  25. }
  26. template <class Item>
  27. void Hybrid_Introspective_Sort(Item *Array, long N)
  28. {
  29.         IntroSort(Array, N, (int)floor(2 * log(N) / 0.69314718055994530942));
  30.         Insertion_Sort(Array, N);
  31. }
  32.  
  33. template <class Item>
  34. void IntroSort(Item *Array, long N, int M)
  35. {
  36.         long i;
  37.         printtab(Array, N);
  38.         if (M <= 0)
  39.         {
  40.                 Heap_Sort(Array, N);
  41.                 return;
  42.         }
  43.         i = Partition(Array, 0, N);
  44.         if (i > 9)
  45.                 IntroSort(Array, i, M - 1);
  46.         if (N - 1 - i > 9)
  47.                 IntroSort(Array + i + 1, N - 1 - i, M - 1);
  48. }
  49. template <class Item>
  50. void Insertion_Sort(Item *Array, long N)
  51. {
  52.         long i, j;
  53.         Item temp;
  54.         for (i = 1; i < N; ++i)
  55.         {
  56.                 temp = Array[i];
  57.                 for (j = i; j > 0 && temp < Array[j - 1]; --j)
  58.                         Array[j] = Array[j - 1];
  59.                 Array[j] = temp;
  60.         }
  61. }
  62.  
  63. int main()
  64. {
  65.         const int s1 = 60;
  66.         int t1[s1];
  67.         const int s2 = 10;
  68.         int t2[s2];
  69.         int z = 0;
  70.         switch (z)
  71.         {
  72.         case 1:
  73.                 for (size_t i = 0; i < s1; i++)
  74.                 {
  75.                         cin >> t1[i];
  76.                 }
  77.                 Hybrid_Introspective_Sort(t1, s1);
  78.                 break;
  79.         case 2:
  80.                 for (size_t i = 0; i < s2; i++)
  81.                 {
  82.                         cin >> t2[i];
  83.                 }
  84.                 int x;
  85.                 cin >> x;
  86.                 zad2(t2, s2, x);
  87.                 break;
  88.         default:
  89.                 break;
  90.         }
  91.        
  92.         cout << zad2(t1, s1, 1);
  93.  
  94. }
  95.  
  96. // Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania
  97. // Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie
  98.  
  99. // Porady dotyczące rozpoczynania pracy:
  100. //   1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi
  101. //   2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła
  102. //   3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty
  103. //   4. Użyj okna Lista błędów, aby zobaczyć błędy
  104. //   5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu
  105. //   6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln
  106.