Tenemos una matriz de elementos a1,a2,...aN
de un alfabeto E
. Asumiendo |N| >> |E|
.Encuentra el extremo para la función de prioridad/orden alfabético
Para cada símbolo del alfabeto definimos una prioridad entera única = V(sym)
. Definamos V{i} := V(symbol(ai))
por la simplicidad.
¿Cómo puedo encontrar la función de prioridad V para los cuales:
Count(i)->MAX | V{i} < V{i+1}
En otras palabras, necesito encontrar el prioridades/permutación del alfabeto para los que el número de posiciones i
, que satisfacen la condición V{i}<V{i+1}
, es máximo
Edit-1: Por favor, lea atentamente. Me dieron una matriz ai
y la tarea es producir una función V
. Es no sobre la clasificación de la matriz de entrada con una función de prioridad.
Editar-2: Ejemplo
E = {a,b,c}; A = 'abcab$';
(aquí $ = símbolo de interrupción artificial, V {$} = + infinito)
Una de las funciones prioritarias óptimas es: V{a}=1,V{b}=2,V{c}=3
, que nos la da siguiendo las señales entre los elementos de la matriz: a<b<c>a<b<$
, lo que da como resultado 4 '<' signos de 5 en total.
¿Quieres decir la clasificación con una función de comparación no estándar? –
No miré el problema desde el lado de ordenar el alfabeto con una función de prioridad personalizada. Cuando intercambias dos valores prioritarios cercanos, tienes intactas todas las demás prioridades, así que creo que ese lado de un problema (clasificación) es adecuado. – kvark
Así que si su alfabeto es {a, b, c} y su secuencia es (a, b, c, b, a) dos funciones de solución óptima serían V = {a => 1, b => 2, c => 3} y V = {a => 3, b => 2, c => 1}. El valor máximo de Count (i) es | E | -1. ¿Correcto? – xan