¿Por qué se prefiere la ordenación rápida para arrays y la ordenación combinada para listas vinculadas?

¿Por qué se prefiere Quick Sort para arreglos? A continuación se muestran implementaciones recursivas e iterativas de Quick Sort y Merge Sort para arreglos. Clasificación rápida recursiva para array. Clasificación rápida iterativa para arrays. Clasificación de combinación recursiva para arreglos Clasificación de combinación iterativa para arreglos La ordenación rápida en su forma general es una … Continue reading «¿Por qué se prefiere la ordenación rápida para arrays y la ordenación combinada para listas vinculadas?»

¿Cómo hacer que Mergesort realice comparaciones O (n) en el mejor de los casos?

Como sabemos, Mergesort es un algoritmo de divide y vencerás que divide la array en mitades recursivamente hasta que alcanza una array del tamaño de 1, y luego combina las subarreglas ordenadas hasta que la array original está completamente ordenada. La implementación típica de la ordenación por fusión funciona en tiempo O(n Log n) en … Continue reading «¿Cómo hacer que Mergesort realice comparaciones O (n) en el mejor de los casos?»

Programa de Python para ordenar por fusión

Merge Sort es un algoritmo Divide and Conquer . Divide la array de entrada en dos mitades, se llama a sí mismo para las dos mitades y luego fusiona las dos mitades ordenadas. La función merge() se utiliza para fusionar dos mitades. El merge(arr, l, m, r) es un proceso clave que asume que arr[l..m] … Continue reading «Programa de Python para ordenar por fusión»

Experiencia de entrevista de Adobe | Conjunto 40 (en el campus para MTS-1)

Prueba en línea: Codificación: Tiempo: 90 minutos Había tres preguntas de codificación de la siguiente manera: Un hombre sale de su casa con unos panqueques. que sean N. Ahora visita K lugares antes de llegar a casa. En cada lugar puede comprar un pastel, vender un pastel o no hacer nada. Pero debe vender L … Continue reading «Experiencia de entrevista de Adobe | Conjunto 40 (en el campus para MTS-1)»

Programa Java para clasificación de combinación iterativa

A continuación se muestra una implementación recursiva típica de Merge Sort que usa el último elemento como pivote. Java // Recursive Java Program for merge sort   import java.util.Arrays; public class GFG {     public static void mergeSort(int[] array)     {         if(array == null)         {             return;         }           if(array.length > 1)         {             int mid = array.length / … Continue reading «Programa Java para clasificación de combinación iterativa»

Programa de Python para ordenar la lista vinculada que ya está ordenada en valores absolutos

Dada una lista enlazada que se ordena en función de valores absolutos. Ordene la lista según los valores reales. Ejemplos:  Input: 1 -> -10 Output: -10 -> 1 Input: 1 -> -2 -> -3 -> 4 -> -5 Output: -5 -> -3 -> -2 -> 1 -> 4 Input: -5 -> -10 Output: -10 -> … Continue reading «Programa de Python para ordenar la lista vinculada que ya está ordenada en valores absolutos»

Programa Javascript para fusionar dos listas enlazadas ordenadas de modo que la lista fusionada esté en orden inverso

Dadas dos listas enlazadas ordenadas en orden creciente. Combínalos de tal manera que la lista de resultados esté en orden decreciente (orden inverso). Ejemplos:  Input: a: 5->10->15->40 b: 2->3->20 Output: res: 40->20->15->10->5->3->2 Input: a: NULL b: 2->3->20 Output: res: 20->3->2 Una solución simple es hacer lo siguiente. 1) Invertir la primera lista ‘a’ . 2) Invertir la … Continue reading «Programa Javascript para fusionar dos listas enlazadas ordenadas de modo que la lista fusionada esté en orden inverso»

Combinar dos listas enlazadas ordenadas – Part 1

Escriba una función SortedMerge() que tome dos listas, cada una de las cuales está ordenada en orden creciente, y fusione las dos en una lista en orden creciente. SortedMerge() debería devolver la nueva lista. La nueva lista debe hacerse empalmando los Nodes de las dos primeras listas. Por ejemplo, si la primera lista enlazada a … Continue reading «Combinar dos listas enlazadas ordenadas – Part 1»

Combinar ordenación para lista doblemente enlazada

Dada una lista doblemente enlazada, escribe una función para ordenar la lista doblemente enlazada en orden creciente usando la ordenación por combinación. Por ejemplo, la siguiente lista doblemente enlazada debe cambiarse a {2, 4, 8, 10}. Ya se ha discutido la ordenación por combinación para la lista enlazada individualmente . El cambio importante aquí es … Continue reading «Combinar ordenación para lista doblemente enlazada»

Combinar dos listas vinculadas ordenadas de modo que la lista combinada esté en orden inverso

Dadas dos listas enlazadas ordenadas en orden creciente. Combínalos de tal manera que la lista de resultados esté en orden decreciente (orden inverso). Ejemplos:  Input: a: 5->10->15->40 b: 2->3->20 Output: res: 40->20->15->10->5->3->2 Input: a: NULL b: 2->3->20 Output: res: 20->3->2 Una solución simple es hacer lo siguiente. 1) Invertir la primera lista ‘a’ . 2) Invertir la … Continue reading «Combinar dos listas vinculadas ordenadas de modo que la lista combinada esté en orden inverso»