← Tornar a l'índex d'exercicis
Els esquemes algorítmics són els blocs de construcció essencials de qualsevol programa. Practica amb aquests qüestionaris i reptes de programació per dominar els patrons de recorregut, cerca (lineal i binària), extrems i ordenació.
Quina és la diferència conceptual clau entre un esquema de recorregut i un esquema de cerca?
Quin és el valor inicial correcte per buscar el valor màxim d'un array d'enters no buit?
int max = 0;int max = array[0];int max = Integer.MAX_VALUE;int max = -1;Per implementar la comprovació "Tots els elements de l'array són parells?" (predicat universal amb bandera), com hem d'inicialitzar la variable boolean totsParells?
boolean totsParells = true; (i canviar a false en trobar el primer imparell)boolean totsParells = false; (i canviar a true en trobar el primer parell)boolean totsParells = null;Quina és la precondició indispensable perquè la cerca dicotòmica (binària) funcioni correctament?
Si un array conté 1.000.000 d'elements ordenats, quantes comparacions fa com a màxim la cerca binària en el pitjor dels casos?
A l'algorisme de la Bombolla (Bubble Sort), què succeeix en completar la primera passada del bucle exterior?
Quin algorisme d'ordenació funciona cercant reiteradament el valor mínim de la part no ordenada i intercanviant-lo amb la primera posició lliure?
1. Recompte i classificació de notes: Donat un array de notes entre 0 i 10, calcula quants excel·lents (>= 9), notables (>= 7 i < 9), aprovats (>= 5 i < 7) i suspesos (< 5) hi ha.
2. Suma i mitjana dels parells: Donat un array de números enters, calcula la suma i la mitjana aritmètica exclusivament dels números que siguin positius i parells.
3. Verificació de signes (Flags): Determina si en un array de temperatures "hi ha hagut alguna glaçada" (almenys una temperatura <= 0) i si "totes les temperatures han estat positives".
4. Filtre de positius: Donat un array amb valors positius i negatius, crea un segon array que contingui únicament els valors estrictament positius.
5. Cerca lineal amb posició: Donat un array d'identificadors d'empleats i un ID introduït per teclat, indica en quina posició (índex) es troba o mostra un missatge indicant que no existeix.
6. Cerca del millor venedor: Donats dos arrays paral·lels (String[] noms i double[] vendes), troba el nom del comercial que ha aconseguit el volum màxim de vendes.
7. Cerca de l'aprovat més just: Troba la nota aprovada més baixa (el mínim de les notes que siguin >= 5.0) d'un grup d'estudiants.
8. Cerca binària pas a pas: Implementa la cerca dicotòmica sobre un array ordenat imprimint a cada pas els valors dels índexs esquerra, dreta i mig per veure com es redueix l'interval de cerca.
9. Bombolla optimitzada: Implementa el mètode de la bombolla amb una variable booleana intercanvi que aturi l'algorisme si en una passada no s'ha produït cap moviment (l'array ja està ordenat).
10. Selecció de menor a major: Implementa l'algorisme de selecció directa per ordenar les alçades d'un equip esportiu en ordre creixent.
11. Fusió de dues llistes ordenades (Merge): Donats dos arrays d'enters ja ordenats $A$ de mida $N$ i $B$ de mida $M$, construeix un tercer array $C$ de mida $N+M$ amb tots els elements perfectament ordenats en temps $O(N+M)$.
12. Comprovació d'array ordenat: Escriu un programa que verifiqui en una sola passada lineal $O(N)$ si un array està o no ordenat en ordre creixent.