0180 - Sort Min Max
De la Universitas MediaWiki
Cerința
Să se ordoneze crescător elementele dintr-un şir dat cuprinse între elementul de valoare maximă şi cel de valoare minimă.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte, separate prin spaţii.
Date de ieșire
Programul afișează pe ecran elementele şirului după ordonare.
Restricții și precizări
- 0 < n ≤ 1000;
- elementele şirului sunt numere naturale mai mici decât 1.000.000;
Exemplul 1
- Intrare
- 5
- 10 20 15 7 12
- Ieșire
- 10 7 15 20 12
- Datele de intrare corespund restricțiilor impuse.
Exemplul 2
- Intrare
- 0
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
#0180 - Sort Min Max
def min_max_pos(n, a):
min_val = float('inf') # initializam minimul cu o valoare mare
max_val = float('-inf') # initializam maximul cu o valoare mica
min_pos = 0
max_pos = 0
for i in range(n):
if a[i] < min_val:
min_val = a[i]
min_pos = i
if a[i] > max_val:
max_val = a[i]
max_pos = i
if min_pos > max_pos: # verificam daca pozitia minima e mai mare decat pozitia maxima
min_pos, max_pos = max_pos, min_pos # interschimbam pozitiile
return min_pos, max_pos
def sort_min_max(n, a):
min_pos, max_pos = min_max_pos(n, a) # gasim pozitia minima si pozitia maxima
for i in range(min_pos, max_pos): # parcurgem elementele din vector intre pozitia minima si
# pozitia maxima
for j in range(i+1, max_pos+1): # parcurgem elementele din vector intre pozitia i si
# pozitia maxima
if a[i] > a[j]: # daca elementul de pe pozitia i e mai mare decat cel de pe j
a[i], a[j] = a[j], a[i] # interschimbam elementele
if __name__ == '__main__':
n = int(input("Introduceti numarul de elemente din vector: "))
a = list(map(int, input("Introduceti elementele vectorului: ").split()))
# verificarea restrictiilor
if 0 < n <= 1000 and all(1 <= x <= 10**6 for x in a):
sort_min_max(n, a) # sortam elementele din vector intre pozitia minima si
# pozitia maxima
print("Vectorul sortat:")
print(*a) # afisam vectorul sortat folosind * pentru a separa elementele cu spatiu
print("Datele de intrare corespund restricțiilor impuse.")
else:
print("Datele de intrare nu corespund restricțiilor impuse.")