Ciencias de la Computación

Preguntas y respuestas para estudiantes, investigadores y profesionales de la informática.

130
¿Por qué hay tantos lenguajes de programación?

Soy bastante fluido en C / C ++, y puedo manejar los diversos lenguajes de scripting (awk / sed / perl). Empecé a usar Python mucho más porque combina algunos de los aspectos ingeniosos de C ++ con las capacidades de scripting de awk / sed / perl. Pero, ¿por qué hay tantos lenguajes de...

122
¿Por qué puedo mirar un gráfico e inmediatamente encontrar el punto más cercano a otro punto, pero me lleva O (n) tiempo a través de la programación?

Déjame aclarar: Dada una gráfica de dispersión de un número dado de puntos n, si quiero encontrar mentalmente el punto más cercano a cualquier punto de la gráfica, puedo ignorar inmediatamente la mayoría de los puntos en el gráfico, reduciendo mis opciones a un número pequeño y constante de puntos...

105
Cómo engañar a la heurística de "probar algunos casos de prueba": Algoritmos que parecen correctos, pero en realidad son incorrectos

Para intentar probar si un algoritmo para algún problema es correcto, el punto de partida habitual es intentar ejecutar el algoritmo a mano en una serie de casos de prueba simples; pruébelo en algunos ejemplos de problemas, incluidos algunos "casos de esquina" simples ". Esta es una gran...

83
Particionamiento Quicksort: Hoare vs. Lomuto

Hay dos métodos de partición de clasificación rápida mencionados en Cormen: Hoare-Partition(A, p, r) x = A[p] i = p - 1 j = r + 1 while true repeat j = j - 1 until A[j] <= x repeat i = i + 1 until A[i] >= x if i < j swap( A[i], A[j] ) else return j y: Lomuto-Partition(A, p,...