<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: El problema de miMerge.</title>
	<atom:link href="http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/feed/" rel="self" type="application/rss+xml" />
	<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/</link>
	<description>Mis proyectos e inquietudes.</description>
	<pubDate>Tue, 06 Jan 2009 12:50:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: 47a8b02983</title>
		<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-1497</link>
		<dc:creator>47a8b02983</dc:creator>
		<pubDate>Tue, 05 Feb 2008 18:56:12 +0000</pubDate>
		<guid isPermaLink="false">http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-1497</guid>
		<description>&lt;strong&gt;47a8b02983...&lt;/strong&gt;

47a8b02983...</description>
		<content:encoded><![CDATA[<p><strong>47a8b02983&#8230;</strong></p>
<p>47a8b02983&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: azrael</title>
		<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-79</link>
		<dc:creator>azrael</dc:creator>
		<pubDate>Tue, 01 May 2007 18:57:40 +0000</pubDate>
		<guid isPermaLink="false">http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-79</guid>
		<description>En 
A. Symvonis: “Optimal stable merging”. The Computer Journal, vol.38, no.8, pp.681-690, 1995
el algoritmo no sólo usa algo de espacio extra(O(log^2 n))
sino que además la complejidad del merge es n log n... lo que hace una complejidad para un mergesort que lo use n^2 log n, que claramente es mas lento que el caballo del malo.
en
J. Ellis, M. Markov: “In situ, stable merging by way of the perfect shuffle”. The Computer Journal, vol.43, no.1 pp.40-53, 2000
cada merge usa un buffer interno, aunque el método no lo entiendo.</description>
		<content:encoded><![CDATA[<p>En<br />
A. Symvonis: “Optimal stable merging”. The Computer Journal, vol.38, no.8, pp.681-690, 1995<br />
el algoritmo no sólo usa algo de espacio extra(O(log^2 n))<br />
sino que además la complejidad del merge es n log n&#8230; lo que hace una complejidad para un mergesort que lo use n^2 log n, que claramente es mas lento que el caballo del malo.<br />
en<br />
J. Ellis, M. Markov: “In situ, stable merging by way of the perfect shuffle”. The Computer Journal, vol.43, no.1 pp.40-53, 2000<br />
cada merge usa un buffer interno, aunque el método no lo entiendo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: azrael</title>
		<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-78</link>
		<dc:creator>azrael</dc:creator>
		<pubDate>Tue, 01 May 2007 18:19:05 +0000</pubDate>
		<guid isPermaLink="false">http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-78</guid>
		<description>Puede parecer increíble, pero a los dos únicos que he conseguido acceder sin tener que "comprar" el artículo han sido:
J. Ellis, M. Markov: “In situ, stable merging by way of the perfect shuffle”. The Computer Journal, vol.43, no.1 pp.40-53, 2000
http://citeseer.ist.psu.edu/cache/papers/cs/7993/ftp:zSzzSzgodot.uvic.cazSzpubzSzPublicationszSzElliszSzmerge.pdf/ellis99insitu.pdf
y
A. Symvonis: “Optimal stable merging”. The Computer Journal, vol.38, no.8, pp.681-690, 1995
http://citeseer.ist.psu.edu/cache/papers/cs/3291/ftp:zSzzSzftp.cs.su.oz.auzSzpubzSztrzSzTR93_466.pdf/symvonis93optimal.pdf

Me parece una autentica VERGÜENZA que cualquier material de este tipo no sea de dominio público.</description>
		<content:encoded><![CDATA[<p>Puede parecer increíble, pero a los dos únicos que he conseguido acceder sin tener que &#8220;comprar&#8221; el artículo han sido:<br />
J. Ellis, M. Markov: “In situ, stable merging by way of the perfect shuffle”. The Computer Journal, vol.43, no.1 pp.40-53, 2000<br />
<a href="http://citeseer.ist.psu.edu/cache/papers/cs/7993/ftp:zSzzSzgodot.uvic.cazSzpubzSzPublicationszSzElliszSzmerge.pdf/ellis99insitu.pdf" rel="nofollow">http://citeseer.ist.psu.edu/cache/papers/cs/7993/ftp:zSzzSzgodot.uvic.cazSzpubzSzPublicationszSzElliszSzmerge.pdf/ellis99insitu.pdf</a><br />
y<br />
A. Symvonis: “Optimal stable merging”. The Computer Journal, vol.38, no.8, pp.681-690, 1995<br />
<a href="http://citeseer.ist.psu.edu/cache/papers/cs/3291/ftp:zSzzSzftp.cs.su.oz.auzSzpubzSztrzSzTR93_466.pdf/symvonis93optimal.pdf" rel="nofollow">http://citeseer.ist.psu.edu/cache/papers/cs/3291/ftp:zSzzSzftp.cs.su.oz.auzSzpubzSztrzSzTR93_466.pdf/symvonis93optimal.pdf</a></p>
<p>Me parece una autentica VERGÜENZA que cualquier material de este tipo no sea de dominio público.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: azrael</title>
		<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-77</link>
		<dc:creator>azrael</dc:creator>
		<pubDate>Tue, 01 May 2007 17:32:14 +0000</pubDate>
		<guid isPermaLink="false">http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-77</guid>
		<description>Gracias por leer Javifields, parece que eres al único que le interesan un poco estos temas :P.
Lo que yo he leído de momento es que si que hay métodos "in-situ" del todo, pero que son tan complejos que aumentan la complejidad del algoritmo.
Por otro lado había pensado que al hacer merge tienes dos trozos de vector, a y b. Siguiendo con la filosofía del algoritmo general de "hacer lo mínimo posible" (es decir, ser vago y eficiente -¿Podría considerarse esto un esquema algoritmico?-), había pensado que lo que habría que hacer es coger el vector más pequeño, situar el máximo y el mínimo de ese vector comparándolos con los elementos del otro, y entonces ya tienes colocados todos los elementos que van hasta el mínimo y todos los que están a partir del máximo. Por lo tanto necesitas espacio auxiliar sólo para los elementos que te faltan por "colocar".
En realidad todo esto lo haces con punteros, de modo que los datos que guardas, los guardas en el vector original, y con los que te falta comparar del vector "grande" los tienes en el vector original. Los único que necesitas conservar por separado son los del vector "pequeño".
No sé si me explico, sino podría hacer otro dibujito con el paint :P.
De todas formas, creo que este método es el que usa el Timsort.
Estoy convencido de que es el método de ordenación óptimo para el 99% de los casos, así que voy a repasar el código esta tarde. Si tienes tiempo de echarle un ojo al algoritmo original dime que te parece.
Voy a echarles un ojo a los documentos.</description>
		<content:encoded><![CDATA[<p>Gracias por leer Javifields, parece que eres al único que le interesan un poco estos temas :P.<br />
Lo que yo he leído de momento es que si que hay métodos &#8220;in-situ&#8221; del todo, pero que son tan complejos que aumentan la complejidad del algoritmo.<br />
Por otro lado había pensado que al hacer merge tienes dos trozos de vector, a y b. Siguiendo con la filosofía del algoritmo general de &#8220;hacer lo mínimo posible&#8221; (es decir, ser vago y eficiente -¿Podría considerarse esto un esquema algoritmico?-), había pensado que lo que habría que hacer es coger el vector más pequeño, situar el máximo y el mínimo de ese vector comparándolos con los elementos del otro, y entonces ya tienes colocados todos los elementos que van hasta el mínimo y todos los que están a partir del máximo. Por lo tanto necesitas espacio auxiliar sólo para los elementos que te faltan por &#8220;colocar&#8221;.<br />
En realidad todo esto lo haces con punteros, de modo que los datos que guardas, los guardas en el vector original, y con los que te falta comparar del vector &#8220;grande&#8221; los tienes en el vector original. Los único que necesitas conservar por separado son los del vector &#8220;pequeño&#8221;.<br />
No sé si me explico, sino podría hacer otro dibujito con el paint :P.<br />
De todas formas, creo que este método es el que usa el Timsort.<br />
Estoy convencido de que es el método de ordenación óptimo para el 99% de los casos, así que voy a repasar el código esta tarde. Si tienes tiempo de echarle un ojo al algoritmo original dime que te parece.<br />
Voy a echarles un ojo a los documentos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: javifields</title>
		<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-76</link>
		<dc:creator>javifields</dc:creator>
		<pubDate>Mon, 30 Apr 2007 15:40:34 +0000</pubDate>
		<guid isPermaLink="false">http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-76</guid>
		<description>ummmm quizás no... veo que los autores llaman "in-situ" a O(log^2 n)... bueno, ya tienes algo de lectura para empezar a mirar... :-D</description>
		<content:encoded><![CDATA[<p>ummmm quizás no&#8230; veo que los autores llaman &#8220;in-situ&#8221; a O(log^2 n)&#8230; bueno, ya tienes algo de lectura para empezar a mirar&#8230; <img src='http://azrael.cauterized.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: javifields</title>
		<link>http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-75</link>
		<dc:creator>javifields</dc:creator>
		<pubDate>Mon, 30 Apr 2007 15:35:31 +0000</pubDate>
		<guid isPermaLink="false">http://azrael.cauterized.net/2007/04/30/el-problema-de-mimerge/#comment-75</guid>
		<description>Hay mergesorts in-situ (es decir coste en espacio O(1)) pero no son fáciles...

S. Dvorák, B. Ďian: "Unstable linear time O(1) space merging". The Computer Journal, vol.31, no.3, pp.279-282, 1988.

S. Dvorák, B. Ďian: "Stable linear time sublinear space merging". The Computer Journal, vol.30, no.4, pp.372-375, 1987.

H. Mannila, E. Ukkonen: "A simple linear-time algorithm for in-situ merging". Information Processing Letters,  vol.18,  no.4, pp.203-208, 1984.

A. Symvonis: "Optimal stable merging". The Computer Journal, vol.38, no.8, pp.681-690, 1995 (al menos de éste se encuentra el pdf en google).

J. Ellis, M. Markov: "In situ, stable merging by way of the perfect shuffle". The Computer Journal, vol.43, no.1 pp.40-53, 2000 (éste también se encuentra en google).

suerte</description>
		<content:encoded><![CDATA[<p>Hay mergesorts in-situ (es decir coste en espacio O(1)) pero no son fáciles&#8230;</p>
<p>S. Dvorák, B. Ďian: &#8220;Unstable linear time O(1) space merging&#8221;. The Computer Journal, vol.31, no.3, pp.279-282, 1988.</p>
<p>S. Dvorák, B. Ďian: &#8220;Stable linear time sublinear space merging&#8221;. The Computer Journal, vol.30, no.4, pp.372-375, 1987.</p>
<p>H. Mannila, E. Ukkonen: &#8220;A simple linear-time algorithm for in-situ merging&#8221;. Information Processing Letters,  vol.18,  no.4, pp.203-208, 1984.</p>
<p>A. Symvonis: &#8220;Optimal stable merging&#8221;. The Computer Journal, vol.38, no.8, pp.681-690, 1995 (al menos de éste se encuentra el pdf en google).</p>
<p>J. Ellis, M. Markov: &#8220;In situ, stable merging by way of the perfect shuffle&#8221;. The Computer Journal, vol.43, no.1 pp.40-53, 2000 (éste también se encuentra en google).</p>
<p>suerte</p>
]]></content:encoded>
	</item>
</channel>
</rss>
