See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Stupid sort - Wikipedia, la enciclopedia libre

Stupid sort

De Wikipedia, la enciclopedia libre

Stupid sort es probablemente el más sencillo de los algoritmos de ordenamiento. Es utilizado para reorganizar valores en un array (también llamado vector, o arreglo) en orden ascendente o descendente. Su nombre se refiere al hecho de que su extrema sencillez repercute en su baja eficiencia, es decir, su rendimiento es pobre en términos de tiempo de ejecución.

Stupid-sort nunca reitera en ordenar los datos en el mejor caso (es decir, cuando los datos ya estén en orden) con un tiempo de ejecución lineal (en este caso óptimo su su tiempo de ejecución es O(n), donde n es el número de elementos en el array). Adicionalmente, su forma no recursiva ordena los datos-en-su-lugar (in place, en inglés), por lo cual no se necesita memoria extra para guardar los datos temporales.

A diferencia del ordenamiento de burbuja, este algoritmo de ordenamiento comienza todo otra vez —esto es, reitera— si encuentra tan solo un elemento fuera de orden. Esto, que simplifica el flujo del algoritmo, conduce a la vez a un tiempo de ejecución muy pobre.

Stupid sort es un algoritmo de ordenamiento estable, lo cual significa que dos valores que tengan el mismo valor se mantendrán en el mismo orden relativo.

[editar] Stupid-sort iterativo

El algoritmo Stupid-sort iterativo se puede describir así:

  1. Inicia por el principio del array, lo examina hasta encontrar dos elementos consecutivos fuera de orden.
  2. Intercambia esos dos elementos y reinicia el algoritmo (va a la línea 1).
  3. El algoritmo termina cuando llega al final del arreglo.

[editar] Código C/C++

stupidSort(array)
{
    i = 0
    while (i < length(array))
        if (array[i + 1] < array[i]) 
        {
            intercambia(array[i], array[i + 1])
            i = 0
        }
        else 
            i = i + 1
}
void intercambia(t_dato &elem1, t_dato &elem2)
{
    t_dato aux; // estoy usando tipo de dato t_dato para generalizar la implementación
                // si usaran int o char quedaría limitado a ese dato y no se podría utilizar 
                // para un arreglo de otro tipo de dato 
    aux = elem2;
    elem2 = elem1;
    elem1 = aux;
} // fin intercambia


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -