Taller del algoritmos 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 20

1.

El underflow o subdesbordamiento se produce cuando se tiene una lista vacía y se


desea borrar un elemento de la misma. Verdadero

2. Como profesional le consultan qué procedimiento siguen la lista circular


simplemente enlazadas. Usted, ¿qué responde?
Una lista circular enlazada simplemente en la que el último elemento (cola) se
enlaza al primer elemento (cabeza).

3. Como profesional le consultan que procedimiento siguen las listas doblemente


enlazadas. Usted, ¿Qué responde?
Cada nodo contiene dos enlaces, uno a su nodo predecesor y otro a su nodo sucesor.

4. Como profesional le consultan qué es imprescindible tener en cuenta para


implementar una cola con un array. Usted, ¿qué responde? Necesita reservar memoria.

5. Como profesional le consultan cuál es la mejor definición que se ajusta al concepto


de lista enlazada. Usted, ¿qué responde?
Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás
de otro.

6. Seleccione las 4 (cuatro) opciones correctas. Como profesional le consultan cuáles


son las operaciones que se pueden realizar con una “lista enlazada”. (Incompleta
pero puede ser lista enlazada)
Insert.
Delete.
Count.
Delete list.

7. Seleccione las 4 (cuatro) opciones correctas. Como profesional le consultan cuales


de las siguientes opciones se corresponden con características de una lista
enlazada. Usted, ¿qué responde?
Se puede hacer tan larga como sea necesario sea necesario.
Puede aumentar o reducir su tamaño durante la ejecución de un programa.
No desperdicia espacio en la memoria.
Los elementos sucesivos están conectados por puntero.

8. Seleccione las 4 (cuatro) opciones correctas. Como profesional le consultan cuales


son las características que el nodo cabecera posee. Usted, ¿qué responde?
Puede tener un valor especial en su campo.
Es apuntado por el ultimo nodo de la lista para cerrar el ciclo.
No se utiliza en un campo de la información
Puede tener un indicador o bandera(flag).
Permite el método de inserción Push().

9. Seleccione las 4 (cuatro) opciones correctas. Como profesional le consultan cuales


de las siguientes opciones se corresponden con características... (Incompleto.. de
listas enlazadas). Usted, ¿qué responde?
La lista necesita dos punteros.
Ocupan más espacio en memoria que las listas simplemente enlazadas para una misma
cantidad de información
Pueden recorrerse en ambas direcciones.
En estas listas cada nodo consta de dos campos de enlace.
Poseen un último nodo que tiene el campo nulo.
10. Seleccione las 4 (cuatro) opciones correctas. Como profesional le consultan que
es posible identificar en una lista doblemente enlazada. Usted, ¿qué responde?
El puntero cabecera apunta hacia el primer nodo de la lista.
La inserción y el borrado de los elementos se realiza por el mismo extremo.
El primer puntero de cada nodo (anterior) apunta hacia el siguiente.
El segundo puntero de cada nodo (siguiente) apunta hacia atrás.

11. Seleccione las 4 (cuatro) opciones correctas. Como profesional le consultan


cuales son las características que el nodo cabecera ....(Incompleta).... Usted,
¿que responde?
Puede tener un indicador o bandera (flag).
Es apuntado por el ultimo nodo de la lista para cerrar el ciclo.
No se utiliza en un campo de la información.
Puede tener un valor especial en su campo.

12. Como profesional le consultan que ventaja permite la asignación dinámica de


variables dentro de una lista enlazada. Usted, ¿Qué responde?
Se pueden implementar listas. De este modo, la memoria física utilizada se
corresponde con el número de elementos de la tabla.

13. Como profesional le consultan en que consiste la operación de la estructura de


datos enlazada “recorrer”. Usted ¿Qué responde?
Consiste en visitar cada uno de los datos o nodos de que consta.

14. Como profesional le consultan porque la inserción de un elemento al final de una


lista enlazada es menos eficiente. Usted, ¿Qué responde?
La inserción al final de la lista es menos eficiente debido a que, normalmente, no
tiene un puntero al último nodo.

15. El tiempo de ejecución para la operación de <<eliminar al final>> (remove - al


final) de las API Java LinkedList (listas enlazadas) es de: O(1).

16. El tiempo de ejecución en el peor escenario para la aplicación del algoritmo de


ordenación del tipo Inserción es: O(n^2).

17. El tiempo de ejecución en el peor escenario para la aplicación del algoritmo de


ordenación del tipo Quicksort es: O(n^2).

18. El tiempo de ejecución en el peor escenario para la aplicación del algoritmo de


ordenación del tipo MergeSort es: O(n log n).

19. El tiempo de ejecución esperado (promedio) para el algoritmo de ordenación del


tipo Mergesort es de: O(n log n).

20. El tiempo de ejecución esperado (promedio) para el algoritmo de ordenación del


tipo Inserción es de: O(N^2)

21. El codigo correcto para implementar el algoritmo de ordenamiento por “selección”


en el lenguaje JAVA es el siguiente: Int indiceMenor, i, j, z n ; n=int ; z=0 ;
for(i=0;i<n-1;i++){z=z+1; // Comienzo de la exploracion e indice iindiceMenor = i;
// j Explora la sublista a[a+1].a[n-1+z] for(j= i+1 ; j<n ; j++) if(a[j] <
a[indiceMenor]) indiceMenor = j; // Situa el elemento mas pequeño en a[i] if(i !=
indiceMenor) intercambiar (a, i, indiceMenor);}. Falso
22. La referencia NULL se utiliza solo en las situaciones donde se inician o
terminan las listas enlazadas. FALSO

23. El código correcto para implementar el algoritmo de ordenamiento por inserción


en el lenguaje JAVA es el siguiente: Full static void ordInsercion (full [] a){full
i, j;full aux;for (i = 1, i <a.length; i-+){/* indice j es para explorar la
sublista a[i-1].a[0] buscando laposicion correcta delelemento destino*/j = i;aux =
a[i];/ / se localiza el punto de insercion explorando haciaabajowhile (j > 0 && aux
< a[j+1]{// desplazar elementos hacia arriba para hacer espacioa[j] =a[j-1];j--;} =
full;}}”. Falso

24. La forma de declarar una estructura nodo dentro de una lista enlazada de numeros
enteros en el lenguaje JAVA es Class Nodo {int dato; Nodo enlace; public Nodo(int
t){ dato = int ; enlace = int;}}. Falso

25. El siguiente algoritmo se utiliza para ordenar de forma ascendente los elementos
de una lista de valores.
Paso 1: Leer el número total de datos o elementos (n).
Paso 2: almacena los elementos en una matriz.
Paso 3: Coloque la posición inicial del elemento i = 1.
Paso 4: Compare el el elemento (que queremos ordenar) con el siguiente elemento de
la matriz. if (key)<= matriz, Then se bajar el siguiente elemento de la matriz en
uno. Else Inserte la clave en una matriz.
Paso 5: Repita el paso 4 para todos los n elementos.
Paso 6: Incremente el valor de i en1 y repita los pasos 4, 5 para i < n.
Paso 7: Imprima la lista ordenada de elementos.
Paso 8: Detener.
El algoritmo de ordenamiento que se ajusta a lo anterior es: Insercion

26. El siguiente algoritmo se utiliza para ordenar de forma ascendente los elementos
de una lista de valores.
Paso 1: Leer el numero total de datos o elementos (n).
Paso 2: almacena los elementos en una matriz.
Paso 3: Coloque la posicion inicial del elemento i = 1.
Paso 4: Compare el el elemento (que queremos ordenar) con el siguiente elemento de
la matriz. if (key) <= matriz, Then se bajar el siguiente elemento de la matriz en
uno. Else Inserte la clave en una matriz.
Paso 5: Repita el paso 4 para todos los n elementos.
Paso 6: Incremente el valor de i en 1 y repita los pasos 4, 5 para i < n.
Paso 7: Imprima la lista ordenada de elementos.
Paso 8: Detener.
El algoritmo de ordenamiento que se ajusta a lo anterior es: Insercion.

27. El siguiente método se utiliza para ordenar de forma ascendente los elementos de
una lista de valores: Paso 1: Dividir la lista de elementos en dos sublistas que
cada elemento en el subarreglo izquierdo es menor o igual que el elemento del medio
y cada elemento del subarreglo de la derecha es mayor que el elemento del medio. La
división de la matriz en dos submatrices se basa en el elemento pivote. Todos los
elementos que son menores que pivote deben estar en el subarreglo izquierdo y todos
los elementos que son más que pivote deben estar en el subarreglo derecho. Paso 2:
Ordenar recursivamente las dos submatrices. Paso 3: Combinar todos los elementos
ordenados en un grupo para formar una lista de elementos ordenados. El algoritmo de
ordenamiento que se ajusta a lo anterior es: QuickSort
28. Al ordenamiento de arrays tambien se le conoce como ordenamiento interno.
Verdadero

29. Seleccione las 4 (cuatro) opciones correctas. Son algoritmos que su complejidad
computacional en el peor de los casos es de O(n˄2)
Burbuja
Burbuja Bidireccional
QuickSort
Seleccion

30. Seleccione las 4 (cuatro) opciones correctas. ¿Cuáles son los algoritmos de
ordenamiento inestable?
Utilizan mayor almacenamiento al tratar de convertirlos en estables.
Pueden ser implementados especialmente para ser estables
Pueden cambiar el orden relativo de registros con claves iguales.
Se pueden extender artificialmente por medio de cotejamiento de claves, para que
las comparaciones entre dos objetos con claves iguales sean decididas usando...
(Incompleta)

31. Seleccione las 4 (cuatro) opciones correctas. ¿Cuándo se implementan listas


enlazadas con arreglos?
Un valor de puntero cero indica el final de la lista.
Se pueden implementar con dos arreglos, uno para los datos y otro para el enlace.
Los nodos podrán almacenarse en un arreglo paralelo arreglo de registro.
El dato o información del nodo e almacenara en un campo y el enlace con el
siguiente elemento se almacenara en otro

32. Seleccione las 4 (cuatro) opciones correctas. ¿Los algoritmos de ordenamiento de


pueden clasificar de la siguiente manera?
Algoritmos de ordenamiento interno.
Algoritmos de ordenamiento natural
Algoritmos de ordenamiento no natural
Algoritmos de ordenamiento externo

33. Seleccione las 4 (cuatro) opciones correctas. Son características del algoritmo
de ordenación ShellSort:
Realiza más operaciones y tiene una mayor tasa de perdida de cache que QuickSort.
Se puede implementar usando un poco de código y no usa la pila de llamadas.
Es una optimización del ordenamiento por inserción que permite el intercambio de
elementos que están muy separados.
Puede servir como un sub-algoritmo de ordenamiento introspectivo, para ordenar
subarreglos cortos y prevenir una desaceleración cuando la profundidad de
recursividad excede un límite dado.

34. Seleccione las 3 (tres) opciones correctas. El ultimo nodo de la lista enlazada
por conveniencia se suele representar con:
La palabra null (nulo).
Una barra inclinada (/).
El símbolo eléctrico de tierra o masa.
Un triángulo isósceles.

35. La abstraccion:
Es el proceso por el cual se destacan los detalles relevantes para un cierto
propósito mientras se ocultan los irrelevantes para tal propósito
36. El siguiente pseudocodigo muestra la estructura de un algoritmo de ordenación
del tipo: desde I <-- 1 hasta N Hacer Si elemento elemento[l] > elemento[l+1] hacer
variableaux elemento[l] elemento[l]elemento[l+1] elemento[l+1]  variableaux
FinSi FinHacer. ¿Con que algoritmo se corresponde? Burbuja

37. El siguiente pseudocodigo muestra la estructura de un algoritmo de ordenación


del tipo:
desde I <-- 2 hasta N Hacer variableaux[I] <-- X[I] K <-- I-1 bandera <-- Falso
Mientras no (bandera) y (k>=1) hacer SI variableaux[I] <-- X[K] entonces X[K+1] <--
- X[K] K <--- K-1 Si_no bandera <-- Verdadero FinSi FinMientras X[K+1] <--
variableaux[I] ...(Incompleta)... corresponde? Insercion.

38. El siguiente pseudocodigo muestra la estructura del algoritmo de ordenacion del


tipo burbuja: desde I <-- 1 hasta N Hacer Si [...] [I+1] > elemento [I] hacer
variableaux <-- elemento[I] elemento[I] <-- elemento[I+1]elemento[I+1] <--
variableaux FinSi ...(Incompleta)... indique cual es el error en la codificacion:
Elemento [I+1] > elemento [I]

39. El siguiente código se utiliza para ordenar de forma ascendente los elementos de
una lista de valores: public static void Ordenar(int A[]){int p, j; int aux;
for(p=1 ; p < A.length; p++) {aux = A[p]; j = p - 1; while((j >= 0) && (aux <
A[j])){A[j +1] = A[j]; j--; } A[j + 1] = aux; }} El algoritmo de ordenamiento que
se ajusta a lo anterior es: Insercion

40. El siguiente algoritmo se utiliza para ordenar de forma ascendente los elementos
de una lista de valores. Paso 1: Leer el número total de elementos (n). Paso 2:
Almacenar los elementos en una matriz. Paso 3: Establecer el elemento inicial i =
0. Paso 4: Comparar los elementos adyacentes, si el primer elemento es más pequeño
que el segundo elemento entonces no hay intercambio de este elemento. De lo
contrario, intercambie el posición del elemento. El algoritmo de ordenamiento que
se ajusta a lo anterior es: Burbuja

41. El siguiente código se utiliza para ordenar de forma ascendente los elementos de
una lista de valores: public static void Ordenar(int A[]) ( int salto, aux, i;
boolean cambios; for (salto = A.length / 2; salto |= 0; salto /= 2) { cambios =
true; while (cambios) { cambios = false; for(i = salto; i < A.length; i++) { if
(A[i- salto] > A[(]) {aux = A[i); A[i] = A[i - salto]; A[i- salto] = aux; cambios =
true; }}}})El algoritmo de ordenamiento que se ajusta a lo anterior es: ShellSort

42. El algoritmo de ordenamiento que mejora el rendimiento del algoritmo por


inserción, comparando elementos separados por un espacio de varias posiciones se
conoce como: ShellSort

43. El algoritmo de inserción con incrementos decrecientes se basa en:


Comparar cada elemento con su elemento contiguo de la izquierda, uno tras otro.

44. El algoritmo de ordenación que es muy similar a la ordenación por selección,


pero difiere fundamentalmente en que el ordenamiento hecho por este algoritmo
escanea hacia atrás desde la clave actual, mientras que el ordenamiento por
selección busca hacia adelante. En este caso se habla del algoritmo de
ordenamiento: Inserción.
45. El algoritmo de ordenamiento que es considerado eficiente y fue desarrollado por
el científico informático británico Tony Hoare en 1959 y publicado en 1961. Este se
basa en seleccionando un elemento ‘pivote’ de la matriz y dividiendo los otros
elementos en dos submatrices, según sean menores o mayores que el pivote se conoce
como: QuickSort

46. Para aplicar la búsqueda secuencial o Binaria siempre se debe tener en cuenta
que:
La búsqueda secuencial se aplica para localizar una clave en un vector no ordenado.

47. Cuando se implementa la clase (class) DoublyLinkedList, ¿Para qué se utiliza el


método removeFirst()? Eliminar y devolver el primer elemento de la lista.

48. Suponga que usted aplica el algoritmo de ordenamiento MergeSort al siguiente


array de numeros enteros [15, 3, 8, -4, 6, 8, 2], la primera iteración del
algoritmo después de dividir todo el array y comenzar a ordenarlo queda de la
siguiente manera: [3, 15, 8, -4, 6, 7, 2]

49. Suponga que usted aplica el algoritmo de ordenamiento Inserción al siguiente


array de numeros enteros [65,20,3,25,55,13], la segunda iteración del algoritmo
deja al array la siguiente manera: [3,20,65,25,55,13]

50. ¿En que se basa el proceso del algoritmo de ordenamiento por intercambio?
El algoritmo se basa en la lectura sucesiva de la lista a ordenar

51. El algoritmo de clasificación por inserción consiste en:


Insertar un elemento en el vector, en una parte ya ordenada de este y comenzar de
nuevo con los elementos restantes. Este método se basa en comparaciones y métodos
sucesivos.

52. Seleccione la opción correcta. El paradigma de programación orientada a objetos


permite el encapsulamiento de: Datos y operaciones.

53. Cuando se implementan listas doblemente enlazadas se utilizan como alternativa


nodos llamados centinelas (sentinels). ¿Donde se insertan...?
Al inicio y al final de la lista.

54. El tiempo de ejecución para la operación de <<eliminar al principio>> (remove -


al principio) de las API Java LinkedList (Listas enlazadas) es de: O(1).

55. El tiempo de ejecución para la operación de <<modificar>> (set) de las API Java
LinkedList (listas doblemente enlazadas) para un elemento que se encuentra cerca de
la parte central de la lista es de: O(1).

56. Suponga que usted aplica el algoritmo de ordenamiento QuickSort al siguiente


array de números enteros [10, 40, 7, 9, 15, 27]: La primera iteración del algoritmo
deja el array de la siguiente manera: [10, 9, 7, 40, 15, 27]

57. Suponga que usted aplica el algoritmo de ordenamiento ShellSort al siguiente


array de números enteros [70, 31, 11, 15, 21, 33]: La primera iteración del
algoritmo deja el array de la siguiente manera: [15, 21, 11, 70, 31, 33]

58. ¿Cuál de estos algoritmos de ordenamiento en su complejidad computacional nunca


llega a ser O(n˄2)? MergeSort
59. Seleccione las 4 (cuatro) opciones correctas. ¿Cuáles son los pasos que se deben
seguir para aplicar el algoritmo de ordenación?
Intercambiar este elemento con el primer elemento de la matriz.
Ordenar el resto de la matriz después del primer elemento de forma recursiva.
Encontrar el elemento más pequeño (mínimo) en una matriz.
Compare este elemento con el primer elemento. Si este elemento es más pequeño que
el primer elemento entonces es el elemento mínimo en toda la matriz. De lo
contrario, el primer elemento es el mínimo.
Encontrar el elemento más grande (máximo) en una matriz.  no va

60. Seleccione las 2 (dos) opciones correctas. En una lista enlazada cada elemento
debe contener un campo:
Con el valor del elemento.
Con un enlace que contiene la posición del siguiente elemento.

61. Seleccione la opción correcta. Indique a qué se hace referencia cuando nos
referimos a la longitud de una lista simple:
Nos referimos a cuánto del espacio físico está utilizando la lista en un momento
determinado
A la cantidad de elementos que componen la lista.

62. Seleccione la opción correcta. Un nodo de cabecera representa:


Un nodo extra, en una lista enlazada, que no almacena ningún dato

63. El último nodo de una lista enlazada debe: Tener Null como enlace.

64. Las Listas Enlazadas, permiten insertar y eliminar de la siguiente manera:


Insertar en cualquier lugar de la lista y eliminar cualquier elemento de la lista.

65. En la operación de una Lista Enlazada, utilizamos un nodo auxiliar llamado


ACTUAL, el mismo es también utilizado en los algoritmos con el nombre de: AUX.

66. En una lista enlazada, el nodo auxiliar AUX, nos sirve para: Recorrer la lista.

67. Una LISTA ENLAZADA permite insertar y eliminar siguiendo el criterio de:
Insertar en cualquier lugar y eliminar cualquier elemento.

68. En una Lista Enlazada, utilizamos Nodos Auxiliares para realizar operaciones,
uno de ellos es llamado FIN, el cual se utiliza para:
Almacenar la referencia al último nodo de la lista, también llamado último.

69. En una Lista Enlazada conocemos también al NODO NUEVO como: Tmp.

70. En una Lista Enlazada el orden de sus componentes se da por:


Direcciones(punteros) que se referencian entre sí.

71. En una Lista Enlazada los nodos ligados:


No tienen que estar físicamente adyacentes.

72. En una Lista Enlazada, al referirnos al primer nodo, estamos mencionando al:
Primero según el orden lógico.

73. Al momento de realizar operaciones con las Listas Enlazadas, necesitamos


utilizar CABECERA, FIN, TMP, ACTUAL, a los cuales conocemos como: Nodos Auxiliares.
74. ¿Cuál es el NODO, que en una Lista Enlazada no tiene ningún dato y solo tiene la
referencia al primer nodo de la lista? Nodo Cabecera.

75. En una Lista Enlazada cada nodo debe almacenar:


El dato y un enlace que señala al nodo siguiente.

76. ¿Qué sucede en una lista simple cuando se apunta la referencia frente a null?
Seleccione la respuesta correcta. Se elimina la lista completa de la memoria.

77. La siguiente porción de código: Nodo nuevo; nuevo = new Nodo(info);


nuevo.Siguiente = this.frente = nuevo; ¿En qué posición de una lista simple esta
insertado el nuevo nodo? Al frente.

78. ¿Cuándo una lista es simplemente enlazada? Seleccione la respuesta correcta.


Cada nodo contiene un único enlace que lo conecta al nodo siguiente o nodo sucesor.

79. Seleccione la opción correcta. Como profesional le consultan en qué consisten


los dos elementos que conforman un nodo dentro de las listas enlazadas. Usted, ¿Qué
responde? La primera parte contiene la información y la segunda parte es una
referencia que apunta al siguiente elemento de la lista.

80. Las operaciones básicas implementadas para manejar listas enlazadas son
únicamente:
Listavacia(L), Insertar(L,x,p), Localizar(Lx) y Suprimir(L,x). Falso.

81. ¿Para qué se utilizan las listas enlazadas de la API Java- LinkedList?
Evitar tener que mover grandes cantidades de datos.

82. Seleccione las 4 (opciones) correctas. Las operaciones que normalmente se


ejecutan con listas incluyen: (En esta pregunta solo hay 3 opciones correctas)
Encontrar el nodo que contiene la información específica.
Insertar un nuevo nodo en un lugar específico de una lista.
Insertar un nuevo nodo en relación a una información particular.

83. El tiempo de ejecución para la operación de <<añadir al final>> (add - al final)


de las API Java LinkedList (listas enlazadas) es de: O(1).

84. El tiempo de ejecución para la operación de <<mostrar >> (get) de las API Java
LinkedList (listas doblemente enlazadas) para un elemento que se encuentra cerca de
la parte central de la lista es de: O(N).

85. El método compareTo() permite comparar por: Igual, mayor o menor.

86. Si al comparar dos cadenas u objetos con compareTo() obtenemos como resultado
0(cero), si hacemos la misma operación con equals() el resultado debe ser: True.

87. El método equals() pertenece a la clase: String.

88. Cuando se implementa la clase (class) DoublyLinkedList, ¿para que se utiliza el


método last()? Devolver (pero no eliminar) el último elemento de la lista.

89. Al implementar una lista enlazada en java, utilizando la clase (class)


SinglyLinkedList, el método size() se usa para
Devolver el número de elementos de la lista.
90. Al implementar una lista enlazada en Java, utilizando en la clase(class)
SinglyLinkedList, el método isEmpty( ) se utiliza para:
Devolver “verdadero” si la lista esta vacía y “falso” en caso contrario.

91. Cuando se implementa la clase (class) SinglyLinkedList, si se llama al metodo


removeFirst() en una lista que está vacía, ¿qué devuelve? Null.

92. Al implementar una lista enlazada en java, utilizando la clase (class)


SinglyLinkedList, el método addLast(e) se utiliza para.
Agregar un nuevo elemento al final de la lista.

93. Cuando se implementa la clase (class) SinglyLinkedList, si se llama al metodo


last () en una lista que esta vacia: Esta devuelve null.

94. Al implementar una lista enlazada en java, utilizando la clase (class)


SinglyLinkedList Si se llama al metodo first() en una lista que esta vacia, esta
devuelve: Null.

95. Si hablamos de clase iteradora, indicar la afirmación incorrecta:


Dispone de métodos que tratan la lista como una unidad o acepta un iterador como
parámetro”.

96. Puede derivarse una clase de lista enlazada ordenada a partir de una clase de
lista. Verdadero

97. ¿Cómo se comprueba fácilmente si una lista doblemente enlazada está vacía?
Seleccione las 2 (dos) opciones
head.next == tail.
tail.prev == head.

98. En las Listas Doblemente Enlazadas:


El primero enlaza con el último nodo y el último enlaza con el primero.

99. Podemos decir que las listas Doblemente Enlazadas comparadas con las simplemente
enlazadas tienen una utilización de memoria: Mayor.

100. ¿Se pueden usar, simultáneamente, Listas Doblemente Enlazadas con Listas
Circulares? Si.

101. Indique cuál de las siguientes afirmaciones es falsa con respecto a una lista
circular simplemente enlazada:
Las listas circulares son estructuras de datos en la que el último nodo apunta al
inmediatamente anterior.

102. ¿Cuáles de los siguientes se corresponden con los pasos para eliminar un
elemento de una lista doblemente enlazada? Selecciones las 4 (cuatro) opciones
correctas.
La referencia siguiente del nodo anterior tiene que apuntar a la referencia
siguiente del nodo a eliminar (si no es nodo cabecera).
Buscar del nodo que contiene el dato.
La referencia anterior del nodo siguiente a borrar tiene que apuntar a la
referencia anterior del nodo a eliminar (si no es el último nodo).
Si el nodo que se elimina es el primero, frente, se modifica frente para que tenga
la dirección del nodo siguiente. Luego la memoria ocupada por el nodo es liberada
automáticamente.
Buscar el nodo cabecera  no va

103. En una lista simplemente enlazada, ¿Cómo debemos eliminar un elemento de la


lista?
Usando un puntero que apunte al nodo que vamos a eliminar (aux) y otro que apunte
al nodo anterior (ant).

104. En una lista simplemente enlazada, ¿Cómo agregamos un nuevo elemento al final de
la misma? Seleccione la opción correcta:
Ir al primer nodo, recorrer la lista hasta el nodo final que posee el valor NULL en
su referencia al siguiente.

105. En una lista circularmente enlazada tenemos que: Seleccione la respuesta


correcta. El enlace next del último nodo hace referencia a FIRST

106. Cuando hablamos de una lista doblemente enlazada decimos que: Seleccione la
respuesta correcta:
Permite un recorrido bidireccional de la lista almacenando 2 enlaces por cada nodo.

107. Es una característica de las listas enlazadas circulares: No posee extremos.

108. Es una ventaja de las listas enlazadas:


Se puede comenzar con el espacio para un solo elemento asignado.

109. Las listas enlazadas circulares permiten extraer los datos desde el fondo de una
pila. Falso

110. En las listas enlazadas:


Los elementos de una lista cuando son almacenados carecen de posiciones físicas
adyacentes.

111. En una lista enlazada que carece de elemento el puntero adyacente tiene un valor
nulo. FALSE

112. Indique el procedimiento para vaciar la pila con lista enlazada.


Public void limpiarPila() { NodoPila t; while(!pilaVacia()) { t = cima; cima =
cima.Siguiente; siguiente = null; } } .

113. Es una desventaja de las listas enlazadas:


El tiempo de acceso a elementos individuales.

114. El campo de direccion de una trama:


Sirve para identificar una de las terminales.

115. Teniendo el siguiente código, en donde tenemos un elemento ArrayList denominado


a, indicar que retorna a.get(i): for( int i=0; i< a.size(); i++ ) { String x =
a.get(i); System.out.printIn(x) }. El i-ésimo elemento de la colección

116. Determine cuál es la afirmación correcta del método set() de la clase ArrayList:
Reemplaza el objeto en la i-ésima posición de la colección por otro que recibe como
parámetro
117. La implementación de ArrayList está basada en: Seleccione la respuesta correcta.
El uso de un array que se ira redimensionando en la medida en que todas sus
posiciones vayan siendo utilizadas

118. Indicar los métodos definidos en la clase ArrayList: Seleccione las 4 (cuatro)
Remove().
Set().
Contains().
Clear().

119. Indique cuál de los siguientes son métodos definidos por la interface
ListIterator: Seleccione las 4 (cuatro)
Previous.
HasNext.
Next.
HasPrevious.

120. Cuando se implementa la clase (class) CircularlyLinkedList, si se llama al


método rotate() en una lista que está vacía, ¿Qué genera?:
Mueve el primer elemento al final de la lista.
Invierte los elementos de la lista.
Rota el primer elemento con el ultimo de la lista.

121. ¿Qué nombre recibe el nodo centinela que se inserta al inicio de la lista cuando
de implementan listas doblemente enlazadas? Header.

122. Cuando se implementa la clase (class) DoublyLinkedList, ¿para que se utiliza el


metodo addFirst()? Agregar un nuevo elemento al principio de la lista.

123. Si tenemos el siguiente arreglo {4, 3, 2, 1, 0} ¿Cómo quedará luego de la


primera iteración del método Bublesort : {3, 2, 1, 0, 4}

124. ¿Cómo queda el arreglo {3, 4, 1, 0, 2} luego de dos iteraciones usando el método
SelectionSort? Seleccione la respuesta correcta {0, 1, 4, 3, 2}

125. El siguiente algoritmo se utiliza para ordenar de forma ascendente los elementos
de una lista de valores: Paso 1: Se divide la matriz de particion en dos sublistas
SL1 y SL2 con (n / 2) elementos cada.
Paso 2: Luego se clasifican las sublistas SL1 y SL2 independientemente.
Paso 3: Combinar SL1 y SL2 en un grupo (matriz) ordenado único. El algoritmo de
ordenamiento que se ajusta a lo anterior es: MergeSort.

126. La ordenacion o clasificacion es un proceso de organizar datos en algun orden o


secuencia especifica, tal como creciente o decreciente para datos numericos o
alfabeticamente para caracteres. Verdadero.

127. Al ordenamiento de archivos también se le conoce como ordenamiento externo.


Verdadero.

128. ¿Cuál es la complejidad del método de ordenación por inserción, si la entrada no


se encuentra previamente ordenada? Seleccione la respuesta correcta O(N2).

129. ¿Cuál es el tiempo de ejecución del caso promedio en el método Insertionsort?


Seleccione la respuesta O(N2).
130. ¿Cuál es el tiempo de ejecución del algoritmo de ordenamiento por inserción si
el arreglo de entrada esta ordenado totalmente a la inversa de como se lo desea en
la salida? O(N2).

131. Si pensamos en un array inicialmente vacío y luego, cualquier elemento que le


agreguemos (llamémosle e1) ocupará la primera posición y el array estará ordenado.
Entonces si agregamos otro elemento (digamos e2), este deberá ubicarse antes o
después de e1 según se verifique o no que e2<e1. ¿De qué algoritmo de ordenación
estamos hablando? InsertionSort.

132. La ordenación por inserción es apropiada para. Seleccione la respuesta correcta:


Tamaños de entradas pequeños.
Ordenar entradas que poseen muchos elementos desordenados?

133. La ordenación por inserción es apropiada para: Seleccione la respuesta correcta.


Tamaños de entradas pequeños.

134. Suponiendo que una lista esta almacenada como un array, donde los indices de la
lista son bajo = 0 y alto = n-1 donde n es el numero de elementos del array, los
pasos a seguir serian: 1. Calcular el indice del punto central del array: central
(bajo + alto)/2 (division entera) 2. Comparar el valor de este elemento central con
el ultimo elemento: Si a[central] < clave, la nueva sublista de busqueda tiene por
valores extremos de su rango bajo = central+1. alto. Si clave < a[central], la
nueva sublista de busqueda tiene por valores extremos de su rango bajo. central-1.
Falso

135. Suponga que usted aplica el algoritmo de ordenamiento por “insercion” al


siguiente array de números enteros [30,15,2,21,44,8]: La segunda iteracion del
algoritmo deja el array de la siguiente manera: [2,15,30,21,44,8]

136. Suponga que usted aplica el algoritmo de ordenamiento por “Insercion” al


siguiente arran de numeros enteros [54,26,93,17,77,31,44,55,20], despues de la
quinta iteracion, los datos quedan ordenados de la siguiente forma:
[17,26,31,54,77,93,44,55,20]

137. El método Shellsort es apropiado para: Seleccione la respuesta correcta.


Tamaños de entradas moderadamente grandes.

138. ¿Cómo se denomina la secuencia h1, h2, etc en el método Shellsort? Seleccione la
respuesta correcta Secuencia de incrementos.

139. ¿El algoritmo Shellsort es subcuadratíco? Verdadero.

140. ¿Qué algoritmo consiste en dividir al array en varios subarrays más pequeños
formados por aquellos elementos del array original que se encuentran separados
entre si por una determinada “distancia de paso”? ShellSort.

141. ¿Cuáles de las siguientes son las características del algoritmo Shellsort?
Seleccione las 4 (cuatro).
La velocidad del algoritmo dependerá de la secuencia de incrementos.
Es el algoritmo más adecuado para ordenar entradas de datos moderadamente grandes
(decenas de millares de elementos).
Intercambio elementos distantes siguiendo una secuencia de incrementos.
Su implementación (código) es relativamente sencilla.
142. ¿Cuál de los siguientes algoritmos de ordenación es una mejora del algoritmo por
inserción? Seleccione la respuesta correcta Shellsort.

143. El algoritmo de clasificación por selección se basa en:


Buscar el elemento menor del vector y colocarlo en la primera posición.

144. El tiempo de ejecución en el escenario promedio para la aplicación del algoritmo


de ordenación del tipo ShellSort es de: O(n log2 n) // O(N ˄ 1.25).

145. Seleccione las 4 (cuatro) opciones correctas. ¿Cuáles son las características
del algoritmo de ordenación Shellsort?
Su velocidad depende de la secuencia de valores con los cuales trabaja,
ordenándolos.
Es adecuando para ordenar listas de tamaño moderado.
Primero mueve los valores usando tamaños de espacio gigantes, de manera que un
valor pequeño se moverá bastantes posiciones hacia su posición final, con solo unas
pocas comparaciones e intercambios.
Su velocidad es aceptable y su codificación es bastante sencilla.

146. Seleccione las 4 (cuatro) opciones correctas. Son características del algoritmo
de ordenamiento ...(Incompleto)... (Deberia ser MergeSort):
Puede servir como un sub-algoritmo de ordenamiento introspectivo, para ordenar
subarreglo ...(Incompleta)... Realiza más operaciones y tiene una mayor tasa de
perdida de cache que Quicksort.
Es una optimización del ordenamiento por inserción que permite el intercambio de
elemento ...(Incompleta)... Se puede implementar usando poco código y no usa la
pila de llamadas.
Es un algoritmo muy poco optimizado para gran cantidad de datos.  no va!

147. Seleccione las 2 (dos) opciones correctas. ¿Cuáles de las siguientes opciones se
corresponden con algoritmos de ordenamiento inestables?
QuickSort.
ShellSort.

148. Seleccione las 2 (dos) opciones correctas. ¿Cuáles de las siguientes opciones se
corresponden con algoritmos de ordenamiento estables?
Burbuja.
MergeSort.

149. Suponga que usted aplica el algoritmo de ordenamiento ShellSoft al siguiente


array de números enteros [63,30,103,21,95,44,52,88,29] después de la quinta
iteración, los datos quedan ordenados de la siguiente forma:
[30, 44, 52, 63, 95, 103, 21, 88, 29]
[21, 29, 30, 44, 52, 63, 88, 95, 103]

150. Si se tiene el arreglo A={1, 13, 26, 24} y el arreglo B={2, 15, 27, 38} como
entradas al algoritmo básico Mergesort. Por otro lado ya ocurrieron dos
…(Incompleto)... básico Mergesort, con cual el arreglo de salida ha quedado como
C={1, 2} ¿Contra qué valor de A se comparó a 2 (que pertenece a B) para que se
ingresara como segundo C? 13.
151. Las siguientes etapas: 1- Si el número de elementos a ordenar es 0 o 1 volver.
2- Ordenar recursivamente y por separado la primera y segunda mitad. 3- Mezclar las
dos mitades ordenadas para obtener un total ordenado. ¿A qué método de ordenamiento
se corresponden? MergeSort

152. Dado el siguiente arreglo [14, 7, 3, 12, 9, 11, 6, 2] ¿Cuál es el valor del
punto medio, denominado usualmente como “q”, y que debe ser calculado durante el
paso divide en el algoritmo Mergesort? 3.

153. ¿Qué ocurre en la etapa denominada Vence durante el algoritmo Mergesort?


Seleccione la respuesta
Se ordena de manera recursiva los subarreglos en cada uno de los dos subproblemas
creados por el paso de dividir

154. ¿Cuál es el tiempo de ejecución del peor caso en el método Mergesort? O(N*lg N)

155. Suponga que usted aplica el algoritmo de ordenamiento “QuickSort” al siguiente


array de números enteros [12,48,9,10,16,20]: La primera iteración del algoritmo
deja el array de la siguiente manera: [12, 10, 9, 48, 16, 20]

156. ¿Cómo se denomina, en algoritmo Quicksort, al procedimiento de reacomodar los


elementos en un array[p.r] de modo que todos los demás elementos en el array[p.r]
que sean menores o iguales que el pivote estén a su izquierda y todos los demás
elementos en el array[p.r] estén a la derecha del pivote? Hacer una partición.

157. ¿Cuáles de las siguiente son las características del algoritmo Quicksort?
Seleccione las 4 (cuatro) opciones
Es fruto de la técnica de resolución de algoritmos divide y vencerás.
Posee un ciclo interno muy ajustado (pocas operaciones).
Para el peor caso tiene un tiempo O(N2).
Su tiempo de ejecución promedio es O(N * Log(N)).

158. ¿Cuál es el tiempo de ejecución del caso promedio el método Quicksort?O(N*lg N).

159. ¿Cuál es el tiempo de ejecución del mejor caso en el método Quicksort?O(N*lg N).

160. ¿Cuál es el tiempo de ejecución del peor caso en el método Quicksort? O(N^2).

161. ¿Mediante qué algoritmo se obtiene finalmente un arreglo ordenado uniendo


arrMenores + pivote + arrMayores (donde arrMenores y arrMayores son arreglos
auxiliares)? Quicksort.

162. Si tenemos el arreglo arr = {4, 7, 2, 5, 1, 9, 3, 8} y tomamos como pivote al


valor 4. ¿Qué valores irán en el arreglo auxiliar arrMenores luego de una primera
pasada del método Quicksort con implementación usando arreglos auxiliares?
ArrMayores = {2, 1, 3} // ArrMenores? = {2,1,3}

163. Si tenemos el arreglo arr = {4, 7, 2, 5, 1, 9, 3, 8} y tomamos como pivote al


valor 4. ¿Qué valores irán en el arreglo auxiliar arrMayores luego de una primera
pasada del método Quicksort con implementación usando arreglos auxiliares?
ArrMayores = { 7, 5, 9, 8}
164. Dado el siguiente arreglo [7, 1, 3, 9, 12, 6, 4, 2, 8] ¿Qué valor toma en
primera instancia el pivote en el método Quicksort si se usa la técnica de
partición central? 12.

165. Dado el siguiente arreglo [8, 1, 4, 9, 6, 3, 5, 2, 7, 0] ¿Qué valor toma en


primera instancia el pivote en el método QuickSort si se usa la técnica de
partición basada en la mediana de tres? 6.

166. Quicksort es un algoritmo relativamente simple y extremadamente eficiente cuya


lógica no es recursiva. FALSO

167. ¿Cuáles de estos algoritmos poseen un tiempo de ejecución O(N2) para el peor de
los casos? Seleccione TRES
ShellSort.
InsertionSort.
QuickSort.

168. Suponga que usted aplica el algoritmo de ordenamiento QuickSort al siguiente


array de números enteros [10,40,7,9,15,27]: La primera iteración del algoritmo deja
el array de la siguiente manera:
[12, 9, 7, 40, 15, 27]
[7, 9, 10, 40, 15, 27]
[27, 15, 40, 7, 9 12]
[40, 27, 7, 12, 15, 9]
[9, 15, 40, 27, 12, 7].

169. El algoritmo de ordenación eficiente, de uso general y basado en la comparación,


el cual la mayoría de sus implementaciones producen una clasificación estable, lo
que significa que el orden de los elementos iguales es el mismo en la entrada y la
salida. Este algoritmo de divide y vencerás fue inventado por John von Neumann en
1945 y se conoce como: MergeSort

170. Si poseemos el siguiente código, y se quiere mostrar un valor el cual no se


encuentra en la lista enlazada, el metodo devolvera una excepcion. Falso

171. Dada la siguiente imagen indicar a qué tipo de estructura corresponde:

Lista enlazada circular con un único elemento.

172. Dada la siguiente imagen, determinar que el elemento de la lista se quitaría si


lo tomamos como una estructura cola. : 3
173. Teniendo la siguiente lista enlazada, se debe determinar cuántas iteraciones se
realizaran hasta llegar a encontrar el valor 3 en la misma: 4

174. Dada la siguiente imagen indicar la respuesta correcta acerca de lo que


representa:

Se elimina el nodo cuyo valor es 7.

175. Nos posicionamos al final de la lista y enlazamos el nuevo nodo con referencia
al último nodo de la lista.

Recorre la lista mostrando el valor de cada uno de sus nodos.

176. Dado el siguiente código determine a qué tipo de estructura se trata:

Lista doblemente enlazada.


177. Teniendo el siguiente código, que resultado devolvería: tres, dos, uno

178. Dado el siguiente código indicar su salida correcta: uno dos tres

179. Según la siguiente imagen, ¿A qué tipo de estructura corresponde?

Lista simplemente enlazada

180. Dada la siguiente imagen, indicar la respuesta correcta acerca de lo que


representa:

Se trata de una lista enlazada ordenada, con inserción de un nuevo valor al


principio de la lista.

181. Dada la suiguiente imagen, indicar la respuesta correcta acerca de lo que


representa:

Lista enlazada ordenada, con nuevo valor al final


182. A partir de la siguiente imagen, a qué tipo de lista se corresponde:

Lista doblemente enlazada

183. Dada la siguiente imagen indicar la respuesta correcta:

Es una lista circular y doblemente enlazada a la vez

184. Dado el siguiente código determinar su salida:

MENDOZA CHACO MISIONES CORDOBA --- CORDOBA MISIONES CHACO MENDOZA

185. se tiene una lista con un método encolar, que almacena valores enteros: 12

186. El algoritmo de ordenamiento que no es estable, puede cambiar el orden relativo


de elementos con valores iguales , trabaja con orden de huecos (saltos) en su
estructura y es un algoritmo de clasificación adaptativo en el sentido de que se
ejecuta más rápido cuando la entrada se clasifica parcialmente se le conoce como:
ShellSort

187. El algoritmo de ordenación que utiliza para el pivote un índice que tiene como
valor la mediana del primer, medio y último elemento de la partición (particiones
grades) para el pivote, conocido como regla de “mediana de tres” se conoce como:
QuickSort
188. Seleccione las 4 (cuatro) opciones correctas. La estrategia para implementar el
algoritmo de ordenación de burbuja consta de los siguientes pasos, ¿Cuáles son?
Cuando no hay pares invertidos, la matriz se ordena. Esto justifica nuestra
condición de parada.
Ordenados incorrectamente. Luego encuentre una j, tal que matriz [j+1] < matriz
[j].
Escanear la matriz, buscando pares de elementos consecutivos que estén ordenados
incorrectamente.
Siempre que se encuentre un par de este tipo, cámbielos y continúe buscando hasta
que final de la matriz, luego de nuevo desde el principio. Deténgase cuando un
escaneo a través de toda la matriz no encuentre par ordenado.

189. Seleccione CUATRO: Las listas circulares presentan características ¿Cuáles son?
Las operaciones de concatenación y división de listar son más eficaces.
El último elemento apunta al principio de la lista.
Cada nodo de una lista circular es accesible.
Disponen de un nodo especial.

190. El algoritmo de clasificación de burbuja se basa en:


El principio de comparar pares de elementos adyacentes e intercambiarlos entre sí.

191. El siguiente código se utiliza para ordenar de forma ascendente los elementos de
una lista de valores:
public void sort(String[] datos) { List<String> list = new ArrayList<>();
Collections.addAll(list, datos); sort(list); list.toArray(datos); } private void
sort(List<String> list) { if (list.size() <2) return; int m = list.size()/2;
List<String> izq = new ArrayList<> (list.subList(0, m)); List<String> der = new
ArrayList<>(list.subList(m, list.size())); sort(izq); sort(der); sort(izq);
sort(der); list.clear(); while (izq.size() > 0 && der.size() > 0) { String si
izq.get(0); String sd = der.get(0); if (si.compareTo(sd) < 0)
list.add(izq.remove(0)); else list.add(der.remove(0)); } list.addAll(izq);
list.addAll(der); } El algoritmo de ordenamiento que se ajusta a lo anterior es:
MergeSort.

192. (4.4) El algoritmo de ordenamiento de tipo externo, estable, basado en la


técnica divide y vencerás, el cual pare de la matriz por la mitad una y otra vez
hasta que cada pieza tenga solo un elemento de longitud, para luego esos elementos
vo orden de clasificación se conoce como: MergeSort

193. (4.5) El algoritmo de inserción rápida se basa en:


El hecho de que es más rápido y más fácil ordenar dos listas pequeñas que una
grande.

194. (4.4) El código en lenguaje Java correcto para implementar el algoritmo de


ordenamiento de búsqueda Binaria es el siguiente: busquedaBin(int a[],int clave)
(int central, bajo, alto int valorCentral;bajo = 0;alto = a.length - 1; while (bajo
<= alto)(central // indice de elemento centralvalorCentral = a[central]; // valor
del indice centralif (clave == valorCentral) return central; devuelve posicionelse
if (clave < valorCentral) alto = central-1; // ir a sublista inferiorelsebajo
central + 1; // ir a subli //elemento no encontrado). FALSO
195. (3.4) Seleccione las 4 (cuatro) opciones correctas. Las listas circulares
presentan características, ¿cuáles son?
El último elemento apunta al principio de la lista.
Las operaciones de concatenación y división de listas son más eficaces.
Disponen de un nodo especial.
Cada nodo de una lista circular es accesible.

196. La implementación correcta del algoritmo de ordenamiento QuickSort es la


siguiente: Public static full quicksort( simple a[](quicksort(a, 0, a.length-1);)
private static void quicksort(double a[], int primero, int ultimo){int i, j,
central; doublé pivote; central = (primero+ultimo)/2; pivote= a[central];
i=primero; j=ultimo; do{while (a[i] < pivote) i++; while(a[j] > pivote) j--; if(i
<= j) {intercambiar (a,i,j); i++; j--}) while(i<=j); if{(primero<j) quicksort(a,
segundo, j); //mismo proceso con sublista izqda if(i<ultimo) quicksort(a,i,ultimo);
mismo proceso con sublista drcha)”. FALSO

197. Las siguientes son etapas son las que se deben considerar para implementar el
algoritmo de inserción entre dos nodos (n1, n2): 1) Crear un nodo con el nuevo
elemento y el campo enlace a null. 2) Hacer que el campo enlace del nuevo nodo
apunte al nodo n2. 3) La variable referencia tiene la dirección del nodo n2, y eso
exige hacer que anterior Enlace apunte al n1. FALSO

198. ¿Cuál es el procedimiento que cumple el algoritmo de Shell o también llamado


algoritmo de ordenación por inserción con incrementos decrecientes?
El algoritmo de Shell modifica los saltos contiguos resultantes de las
comparaciones por saltos de mayor tamaño.

199. En una lista circularmente enlazada tenemos que: Selecciona la respuesta:


El enlace next del último nodo hace referencia a FIRST

También podría gustarte