Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Informatyka - Algorytmy wyszukiwania i sortwania w C++


korciok

Rekomendowane odpowiedzi

Opublikowano

Jestem noga z C++ i nie mam pojęcia jak to zrobić. Za pomoc dam 6x limit lajków (łącznie 90). Zadania w code (jeżeli komuś nie pasują mogę wysłać .odt)

Zad. 1. (max. 6p.) Uzupełnij kod programu, który powinien wyszukać największy (co do wartości bezwzględnej) element w tablicy T. W przypadku, gdy w zbiorze danych wejściowych pojawią się dwie liczby (dodatnia i ujemna), które spełniają warunki zadania to program może wskazać dowolną z nich.

#include <cstdlib>
#include <iostream>

using namespace std;

int T[100];

int najwiekszy_WB(int a, int ;

int main(int argc, char *argv[])
{
    int n, a, b;
    cin >> n;
    
    for(int i=0; i<=n-1; i++)
     cin >> T[i];

    cout << najwiekszy_WB(0, n-1) << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

//  a, b - poczatek i koniec zakresu w ktorym szukamy
int najwiekszy_WB(int a, int 

{
 if(a== return T[a];
 else
 {
  int m1, m2, s;
  s=(a+b)/2;
  m1=najwiekszy_WB(a, s);

 }
}


Zad. 2. (max. 8p.) Tablicę T należy posortować w porządku nierosnącym metodą przez wybieranie. Uzupełnij tabelę przedstawiającą rezultaty kolejnych kroków sortowania.

	        T[0]    T[1]	T[2]   T[3]   T[4]     T[5]   T[6]     T[7]    T[8]   T[9]
Stan początkowy	6	83	61	87	28	94	80	87	75	43
Stan po kroku 1										
Stan po kroku 2										
Stan po kroku 3										
Stan po kroku 4										
Stan po kroku 5										
Stan po kroku 6										
Stan po kroku 7										
Stan po kroku 8										
Stan po kroku 9										


Zad. 3. (max. 10p.) Tablicę T należy posortować w porządku niemalejącym metodą przez wstawianie. Uzupełnij tabelę przedstawiającą rezultaty kolejnych kroków sortowania.

	        T[0]	T[1]	T[2]	T[3]	T[4]	T[5]	T[6]	T[7]	T[8]	T[9]
Stan początkowy	6	83	61	87	28	94	80	87	75	43
Stan po kroku 1										
Stan po kroku 2										
Stan po kroku 3										
Stan po kroku 4										
Stan po kroku 5										
Stan po kroku 6										
Stan po kroku 7										
Stan po kroku 8										
Stan po kroku 9										

Zad. 4. (max. 10p.) Tablicę T należy posortować w porządku niemalejącym metodą sortowania bąbelkowego. Uzupełnij tabelę przedstawiającą rezultaty kolejnych kroków sortowania (nie należy przedstawiać rezultatów poszczególnych prostych zamian, ale całych przebiegów). Należy założyć, że po pierwszym kroku (przebiegu) największa liczba powinna znajdować się w elemencie T[9].

	       T[0]	T[1]	T[2]	T[3]	T[4]	T[5]	T[6]	T[7]	T[8]	T[9]
Stan początkowy	6	83	61	87	28	94	80	87	75	43
Stan po kroku 1										
Stan po kroku 2										
Stan po kroku 3										
Stan po kroku 4										
Stan po kroku 5										
Stan po kroku 6										
Stan po kroku 7										
Stan po kroku 8										
Stan po kroku 9										


Zad. 5. (max. 6p.) Uzupełnij kod programu realizującego algorytm sortowania przez scalanie w porządku nierosnącym.

#include <cstdlib>
#include <iostream>

const int rozmiar=1000, niesk=10000000;
int T[rozmiar], A[rozmiar/2+1], B[rozmiar/2+1];

using namespace std;

int sortuj_przez_scalanie(int p, int k);
int scalaj(int p, int s, int k);

int main(int argc, char *argv[])
{
	int n;
	
	cin >> n;
	for(int i=0; i<n; i++)
	 cin >> T[i];
	
	sortuj_przez_scalanie(0,n-1);
	
	for(int i=0; i<n; i++)
	 cout << T[i] << " ";
	cout << endl;

    system("PAUSE");
    return EXIT_SUCCESS;	
}

int sortuj_przez_scalanie(int p, int k)
{
  if(p==k) return 0;
  else
  {  int s=(p+k)/2;
	sortuj_przez_scalanie(p,s);
	sortuj_przez_scalanie(s+1,k);
	scalaj(p,s,k);
	return 0;  }
}

int scalaj(int p, int s, int k)
{
 if(p<k)
 {
  for(int i=p; i<=s; i++)
   A[i-p]=T[i];
  A[s-p+1]=niesk;

  for(int i=s+1; i<=k; i++)
   B[i-(s+1)]=T[i];
  B[k-s]=niesk;
 }	
 return 0;
}

Zad. 6. (max. 10p.) Tablicę T należy posortować niemalejąco korzystając z algorytmu sortowania szybkiego (ang. quicksort). Uzupełnij tabelę przedstawiającą pierwszą fazę realizacji algorytmu - umieszczenie wartości elementu T[0] na właściwej pozycji.

	       T[0]	T[1]	T[2]	T[3]	T[4]	T[5]	T[6]	T[7]	T[8]	T[9]
Stan początkowy	6	83	61	87	28	94	80	87	75	43
Stan po kroku 1										
Stan po kroku 2										
Stan po kroku 3										
Stan po kroku 4										
Stan po kroku 5										
Stan po kroku 6										
Stan po kroku 7										
Stan po kroku 8										
Stan po kroku 9										
Stan końcowy										


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...