• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Analiza algorytmu ( zad6 ze zbioru matrualnego )

Object Storage Arubacloud
0 głosów
164 wizyt
pytanie zadane 10 kwietnia 2016 w Rozwój zawodowy, nauka, praca przez piotr432 Użytkownik (620 p.)

Hej! wyjaśnił by mi ktoś jak działa algorytm z  zad6(a)  ze zbioru maturalnego z informatyki (CKE) http://www.cke.edu.pl/images/_EGZAMIN_MATURALNY_OD_2015/Materialy/Zbiory_zadan/Matura_Zbi%C3%B3r_zada%C5%84_Informatyka.pdf

Zadanie znajduje się na 18 stronie.
Powiem co rozumiem :

- rozumiem , że zawsze na pierwszym miejscu będzie " 1" wynika to z" A[1...2^k] — tablica liczb całkowitych"

i według tego "k=2 ; Początkowa zawartość tablicy A[1...2^k] -> [4, 3, 1, 2] ; Końcowa zawartość tablicy A[1...2^k] -> [1, 4, 3, 2]"  <- ( przykład ) 
Rozumiem dlaczego " 1" jest pierwsze ale idąc tropem tej tablicy to ostatnie powinno chyba być "4" a nie "2"

Czy ktoś mógłby mi wytłumaczyć mi ten przykład ( fajnie jakby ktoś to przedstawił pod względem podstawiania ale nie trzeba )

 

2 odpowiedzi

+1 głos
odpowiedź 11 kwietnia 2016 przez pakopaw Użytkownik (820 p.)
wybrane 12 kwietnia 2016 przez piotr432
 
Najlepsza
Chyba szybciej napisać własny kod, licząc ręcznie za pierwszym razem się pomyliłem.

Na początku n = 2^k = 4

Wchodzimy do wewn. pętli z s=1, j=1. Tutaj warunek jest spełniony (A[j] > A[s+j] czyli A[1] > A[2] bo 4>3). Po zamianie mamy A=[3, 4, 1, 2]. Wchodzimy do drugiego obiegu wewn. pętli z j=3 (nadal s=1). Tym razem warunek nie jest spełniony (patrzymy że A[j] > A[s+j] czyli A[3] > A[4] da nam sprzeczność 1>2). Opuszczamy wewn. pętlę bo j=5 nie spełnia warunku j<n.

Pierwsza pętla wchodzi w drugi obieg z s=2. Wchodzimy do wewn. pętli z j=1. Warunek jest spełniony (A[j] > A[s+j] czyli A[1] > A[3] bo 3>1). Po zamianie A=[1, 4, 3, 2]. Przerywamy wewn. pętlę bo j=5 nie spełnia warunku j<n. Na pierwszej pętli s=4 co nie spełnia warunku s<n (4<4).

Czyli program kończy się wykonywać z A=[1, 4, 3, 2].
+1 głos
odpowiedź 11 kwietnia 2016 przez bumpMind Gaduła (4,260 p.)
int main() {
	int temp;
	
	int k = 3;
	int s;
	int j;
	
	int tab[] = { 8, 7, 6, 5, 4, 3, 2, 1 };
	
	int n = 1;
	
	for(int i=1; i<=k; i++)
		n *= 2;
	
	s = 1;
	
	while( s < n ) {
		j = 1;
		
		while( j < n ) {
			if( tab[j-1] > tab[j+s-1] ) {
				temp = tab[j-1];
				tab[j-1] = tab[j+s-1];
				tab[j+s-1] = temp;
			}
			
			j += 2*s;
			
			for( int i = 0; i<4; i++ ) {
				std::cout<<tab[i]<<", ";		
			}
		   	std::cout<<std::endl;
		}
		s *= 2;
	}
	
	
	return 0;
}

późno już na tłumaczenie więc załączę ten kodzik w c++ który jest implementacją pierwszego algorytmu, wyświetla zawartość tablicy co pętle, zwykle preferuję naukę przez praktykę może w ten sposób szybciej zrozumiesz algorytm, przy drobnej edycji możesz wyświetlać co się dzieje z poszczególnymi zmiennymi co myślę jest kluczem do zrozumienia całości, powodzenia ;)

Edit. Nie sprawdziłem działu i co prawda nie ma nic o językach programowania ale myślę że zdając maturę z informatyki rozszerzonej tego typu odpowiedź okaże się dość zrozumiała

Podobne pytania

0 głosów
0 odpowiedzi 533 wizyt
pytanie zadane 19 stycznia 2022 w Egzaminy zawodowe przez mlodzik Nowicjusz (120 p.)
0 głosów
1 odpowiedź 897 wizyt
+1 głos
0 odpowiedzi 560 wizyt
pytanie zadane 9 maja 2017 w Algorytmy przez MultiGumis Początkujący (330 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...