Metode de sortare

1. Fişierului text NR.TXT conţine pe o singură linie, separate prin câte un singur spaţiu, cel mult 100 de numere naturale, fiecare număr având cel mult 4 cifre. Scrieţi un program C/C++ care citeşte toate numerele din fişierul NR.TXT şi afişează pe ecran, separate prin câte un spaţiu, în ordine crescătoare, toate numerele din fişier care au cel puţin 3 cifre. Dacă fişierul nu conţine astfel de numere se va afişa pe ecran mesajul NU EXISTA.

2. Fişierul text NR.TXT conţine pe o singură linie, separate prin câte un singur spaţiu, cel mult 100 de numere naturale, fiecare număr având cel mult 4 cifre. Scrieţi un program C/C++ care citeşte numerele din fişierul NR.TXT şi afişează pe ecran, separate prin câte un spaţiu, în ordine descrescătoare, toate numerele din fişier care au cel mult 2 cifre. Dacă fişierul nu conţine astfel de numere se va afişa pe ecran mesajul NU EXISTA.

3. Se consideră fişierul BAC.TXT ce conţine cel mult un milion de numere naturale separate prin spatii, fiecare număr având cel mult nouă cifre. Scrieţi un program C/C++ care citeşte toate numerele din fişierul BAC.TXT şi determină, folosind un algoritm eficient din punct de vedere timpului de executare, cele mai mari două numere de trei cifre care nu se află în fişier. Cele două numere vor fi afişate pe ecran în ordine descrescătoare, cu un spaţiu între ele. Dacă nu pot fi determinate două astfel de numere, programul va afişa pe ecran valoarea 0. Exemplu: dacă fişierul BAC.TXT conţine numerele: 12 2345 123 67 989 6 999 123 67 989 999, atunci programul va afişa 998 997

4. În fişierul numere.txt sunt memorate maximum 10000 de numere naturale cu cel mult 9 cifre fiecare. Fiecare linie a fişierului conţine câte un număr. Se cere afişarea pe ecran, în ordine  crescrescătoare, a tuturor cifrelor care apar în numerele din fişier. Alegeţi un algoritm de rezolvare eficient din punct de vedere al timpului de executare. Exemplu: dacă fişierul numere.txt conţine:267 39628 79, se va tipări 9987766322.

5. În fişierul numere.txt pe prima linie este memorat un număr natural n (n≤10000), iar pe linia următoare un şir de n numere naturale distincte două câte două, separate prin câte un spaţiu, cu maximum 4 cifre fiecare. Se cere afişarea pe ecran a poziţiei pe care s-ar găsi primul element din şirul aflat pe linia a doua a fişierului, în cazul în care şirul ar fi ordonat crescător. Numerotarea poziţiilor elementelor în cadrul şirului este de la 1 la n. Alegeţi un algoritm de rezolvare eficient din punct de vedere al memoriei utilizate şi al timpului de executare. Exemplu: dacă fişierul numere.txt conţine: 6 267 13 45 628 7 79, se va afişa 5, deoarece primul element din şirul iniţial, 267, s-ar găsi pe poziţia a cincea în şirul ordonat crescător (7 13 45 79 267 628).

6. Se dă un şir cu n elemente, numere naturale. Să se afişeze, în ordine crescătoare, toate valorile distincte care se pot obţine ca sumă de două elemente distincte din şir.

7. CRB are un șir cu n numere naturale diferite. Nu știe ce să facă cu ele și le aranjează în ordine descrescătoare. Apoi observă că anumite numere se află pe aceeași poziție ca în șirul inițial. Ajutați pe CRB să determine câte elemente din șir respectă această regulă.

8. Să se scrie un program care ordonează crescător elementele din prima jumătate a unui vector și descrescător elementele din a doua jumătate.

9. Se citește un șir cu n numere naturale. Să se verifice dacă prin rearajarea elementelor șirului se poate obține un șir palindrom.

10. Se dau înălțimile a n copii, numerotați de la 1 la n, exprimate prin numere naturale. Afișați numerele de ordine ale copiilor în ordinea crescătoare a înălțimii lor.

*Probleme selectate din variantele de subiecte pentru bacalaureat, 2009*