Răspuns :
#!/usr/bin/env python
def specialSort(v):
odd = []
even = []
for val in v:
if val % 2 == 0:
even = even + [val]
else:
odd = odd + [val]
bool__ = True
while bool__ == True:
bool__ = False
for i in range(0, len(odd) - 1):
if(odd[i] > odd[i+1]):
temp = odd[i]
odd[i] = odd[i+1]
odd[i+1] = temp
bool__ = True
bool__ = True
while bool__ == True:
bool__ = False
for i in range(0, len(even) - 1):
if(even[i] < even[i+1]):
temp = even[i]
even[i] = even[i+1]
even[i+1] = temp
bool__ = True
# varianta 1: elementele impare in ordine crescatoare urmate de elementele pare in ordine descrescatoare
#return odd + even # Asa trebuie sa arate vectorul ??
# varianta 2: punem elementele inapoi in lista initiala, in ordinea rezultata dupa sortari
k1 = 0
k2 = 0
for i in range(0, len(v)-1):
if v[i] % 2 == 0:
v[i] = even[k1]
k1 = k1 + 1
else:
v[i] = odd[k2]
k2 = k2 + 1
return v
Am folosit 2 variante, foloseste-o pe cea de care ai nevoie si pune-o pe cealalta in comentarii.
(Nu pot pune fisierul ca atasament asa ca il poti gasi aici: https://pastebin.com/ZVafD9Dm)
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.