C++ Metoda Dziel i Zwyciężaj

0

Witam! Mam za zadanie stworzyć program, który za pomocą metody Dziel i Zwyciężaj wyświetli najmniejszą i największą wartość tablicy dzięsięcio elementowej, gdzie elementy podaje użytkownik. Niestety, program w pewnym momencie się zatrzymuje:

#include <iostream>
using namespace std;
#define N 10
#define M 5
int tab[N], MAX[M], MIN[M];

void algorytm()
{	
	for(int i=1;i<N;i+=2)
	{
		for(i=1;tab[i]>tab[i-1];i++)
		{
			tab[i]=MAX[i-1];
			tab[i-1]=MIN[i-1];
		}
		for(i=1;tab[i]<tab[i-1];i++)
		{
			tab[i-1]=MAX[i-1];
			tab[i]=MIN[i-1];
		}
	}
}

int main()
{	cout<<"Podaj 10 liczb: ";
	for(int i=0; i<N; i++)
	{	
		int a;
		cin>>tab[a];
	}
	algorytm();
	cout<<"\nMAX: ";
	cout<<MAX[0,1,2,3, 4]<<" ";
    
	cout<<"\nMIN:";
	cout<<MIN[0, 1, 2, 3, 4]<<" ";
	

	return 0;
}

1
  1. Używaj kolorowania kodu:
int fajny_kolorowy_kod; 

obok ``` u góry dopisz c++

2.EDIT: Słuchaj mądrzejszych ode mnie :D

3.Co chesz tym osiągnąć ?

    cout<<"\nMAX: ";
    cout<<MAX[0,1,2,3, 4]<<" ";

    cout<<"\nMIN:";
    cout<<MIN[0, 1, 2, 3, 4]<<" ";
  1. Co zrobi twój algorytm dla takich danych:
    10 9 8 7 6 5 4 3 2 1
    ?
1

A jakbyś napisał to w pseudokodzie? Bez C++?

0

TUTAJ jest opis "dziel i zwyciężaj", musisz napisać funkcję rekurencyjną, przykładem takiego algorytmu będzie, np. quicksort (w linku masz też przykład implementacji). Jest też sporo filmów na polskim yt z rozpiską krok po kroku, więc na pewno sobie poradzisz

1
Suchy702 napisał(a):

To bardzo miesza, #define cos slowo_kluczowe_cpp np #define ll long long

Zamiast define ll to powinienes zrobic #import <cstdint> i pisac int64_t, uint64_t, int32_t itd...

1 użytkowników online, w tym zalogowanych: 0, gości: 1