Nos dan una array de n números distintos, la tarea es clasificar todos los números pares en orden creciente y los números impares en orden decreciente. La array modificada debe contener todos los números pares ordenados seguidos de los números impares ordenados inversamente.
Tenga en cuenta que el primer elemento se considera par debido a su índice 0.
Ejemplos:
Input: arr[] = {0, 1, 2, 3, 4, 5, 6, 7} Output: arr[] = {0, 2, 4, 6, 7, 5, 3, 1} Even-place elements : 0, 2, 4, 6 Odd-place elements : 1, 3, 5, 7 Even-place elements in increasing order : 0, 2, 4, 6 Odd-Place elements in decreasing order : 7, 5, 3, 1 Input: arr[] = {3, 1, 2, 4, 5, 9, 13, 14, 12} Output: {2, 3, 5, 12, 13, 14, 9, 4, 1} Even-place elements : 3, 2, 5, 13, 12 Odd-place elements : 1, 4, 9, 14 Even-place elements in increasing order : 2, 3, 5, 12, 13 Odd-Place elements in decreasing order : 14, 9, 4, 1
Tenemos una solución existente para este problema, consulte el enlace Ordenar elementos pares en orden creciente e impar en orden decreciente . Podemos resolver este problema en python rápidamente usando List Comprehension . El enfoque es muy simple,
- Separe la lista original en dos partes, una contiene todos los elementos indexados pares y la otra contiene todos los elementos indexados impares.
- Ahora ordene la lista que contiene todos los elementos indexados pares en orden ascendente y la lista que contiene todos los elementos indexados impares en orden descendente. Ahora concatene ambos.
# Function to Sort even-placed elements # in increasing and odd-placed in decreasing # order def evenOddSort(input): # separate even odd indexed elements list evens = [ input[i] for i in range(0,len(input)) if i%2==0 ] odds = [ input[i] for i in range(0,len(input)) if i%2!=0 ] # sort evens in ascending and odds in # descending using sorted() method print (sorted(evens) + sorted(odds,reverse=True)) # Driver program if __name__ == "__main__": input = [0, 1, 2, 3, 4, 5, 6, 7] evenOddSort(input)
Producción:
[0, 2, 4, 6, 7, 5, 3, 1]
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA