b'\n_START_ARTICLE_\nGnome sort\n_START_PARAGRAPH_\nEl algoritmo de ordenaci\xc3\xb3n conocido como gNome_sort tiene una historia de invenci\xc3\xb3n cuasi paralela. _NEWLINE_Durante un tiempo existi\xc3\xb3 la pol\xc3\xa9mica sobre su invenci\xc3\xb3n, finalmente atribuida a Hamid Sarbazi-Azad quien lo desarroll\xc3\xb3 en el a\xc3\xb1o 2000 y al que llam\xc3\xb3 Stupid sort (Ordenamiento est\xc3\xbapido)._NEWLINE_Cuando Dick Grune lo invent\xc3\xb3 (m\xc3\xa1s apropiadamente, lo reinvent\xc3\xb3) y document\xc3\xb3,\xe2\x80\x8b no hall\xc3\xb3 evidencias de que existiera y en palabras suyas, dijo de \xc3\xa9l "the simplest sort algorithm"\xe2\x80\x8b (es el algoritmo m\xc3\xa1s simple) y quiz\xc3\xa1s tenga raz\xc3\xb3n, pues lo describi\xc3\xb3 en s\xc3\xb3lo cuatro l\xc3\xadneas de c\xc3\xb3digo. Dick Grune se bas\xc3\xb3 en los gnomos de jard\xc3\xadn holand\xc3\xa9s y la manera en que se colocan dentro de los maceteros (ver la referencia anterior) y de ah\xc3\xad tambi\xc3\xa9n el nombre que le dio._NEWLINE_Netamente es un algoritmo de burbuja con una clara particularidad: recorre el array a ordenar como una cremallera, en un vaiv\xc3\xa9n, o bien puede ser definido como un ordenamiento de burbuja bidireccional, que a su vez son llamados tambi\xc3\xa9n cocktail shaker (agitador de c\xc3\xb3cteles), por la forma en que trabaja..._NEWLINE_Cumple estrictamente hablando con la complejidad O(n\xc2\xb2).\n_START_SECTION_\nDescripci\xc3\xb3n\n_START_PARAGRAPH_\nEl algoritmo empieza comparando la primera pareja de valores. Si est\xc3\xa1n en orden incrementa el puntero y vuelve a realizar la comparaci\xc3\xb3n: si no est\xc3\xa1n en orden, se pasa el menor a la izquierda y el mayor a la derecha, y se reduce el puntero. Ahora la comparaci\xc3\xb3n es con el elemento anterior, y si no hay un elemento anterior se pasa al siguiente elemento. Cuando el puntero alcanza el extremo superior del array, ya est\xc3\xa1 totalmente ordenado. _NEWLINE_Cuando compara hacia arriba va sin hacer intercambios, es que el par bajo examen est\xc3\xa1 ordenado entre s\xc3\xad, y cuando compara hacia abajo, va haciendo intercambios. El proceso aparece como un zigzagueo continuo a un lado y otro._NEWLINE_La operaci\xc3\xb3n empieza por el puntero en el punto m\xc3\xa1s bajo y cuando llega al extremo superior ha terminado de ordenar el array._NEWLINE_Para realizar un ordenamiento inverso basta cambiar la decisi\xc3\xb3n de intercambio de los elementos, es decir, dejar los mayores abajo y los menores arriba.\n_START_SECTION_\nPseudoc\xc3\xb3digo\n_START_PARAGRAPH_\ni \xe2\x86\x90 1_NEWLINE_  Mientras i \xe2\x89\xa4 len- 1_NEWLINE_    Si i=1 o a[i-1] \xe2\x89\xa4 a[i]_NEWLINE_        i \xe2\x86\x90 i+1_NEWLINE_    Sino_NEWLINE_        temp \xe2\x86\x90 a[i-1]_NEWLINE_        a[i-1] \xe2\x86\x90 a[i]_NEWLINE_        a[i] \xe2\x86\x90 temp_NEWLINE_        i \xe2\x86\x90 i-1_NEWLINE_        Si i = 0_NEWLINE_          i \xe2\x86\x90 1_NEWLINE_        Finsi_NEWLINE_    Finsi_NEWLINE_  FinMientras'