{"id":599,"date":"2014-12-31T13:29:53","date_gmt":"2014-12-31T12:29:53","guid":{"rendered":"http:\/\/www.valcon.it\/pascal\/?p=599"},"modified":"2015-07-03T13:55:56","modified_gmt":"2015-07-03T11:55:56","slug":"shaker-sort","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/pascal\/shaker-sort\/","title":{"rendered":"Shaker sort"},"content":{"rendered":"<p>Si tratta di un <a class=\"\" title=\"Bubble sort\" href=\"http:\/\/www.valcon.it\/pascal\/bubble-sort\/\">bubble sort<\/a> nei due sensi.<br \/>\nSi <em>tenta<\/em> di ridurre la lunghezza delle passate partendo dai due lati alternativamente.<\/p>\n<pre class=\"\">Procedure SHAKERSORT(Var V: Vettore; N: Integer);\r\nVar\r\n\u00a0\u00a0 Inizio, Fine, Ultimo, i: Integer;\r\nBegin\r\n\u00a0\u00a0 Inizio:=1;\r\n\u00a0\u00a0 Fine:=N-1;\r\n\u00a0\u00a0 Ultimo:=N-1;\r\n\u00a0\u00a0 While(Inizio <= Fine) Do\r\n\u00a0 \u00a0 \u00a0 Begin\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 For i:=Inizio To Fine Do\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 If(V[i] > V[i+1]) then\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Begin\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SCAMBIA(V[i], V[i+1]);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Ultimo:=i;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 End;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 Fine:=Ultimo-1;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0For i:=Fine DownTo Inizio do\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 If(V[i] > V[i+1]) Then\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \u00a0 \u00a0 Begin\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SCAMBIA(V[i], V[i+1]);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Ultimo:=i;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 \u00a0 \u00a0 End;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0Inizio:=Ultimo+1;\r\n\u00a0 \u00a0   End;\r\nEnd;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Si tratta di un bubble sort nei due sensi. Si tenta di ridurre la lunghezza delle passate partendo dai due lati alternativamente. Procedure SHAKERSORT(Var V: Vettore; N: Integer); Var \u00a0\u00a0 Inizio, Fine, Ultimo, i: Integer; Begin \u00a0\u00a0 Inizio:=1; \u00a0\u00a0 Fine:=N-1; \u00a0\u00a0 Ultimo:=N-1; \u00a0\u00a0 While(Inizio V[i+1]) then \u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Begin \u00a0 &#8230; <a title=\"Shaker sort\" class=\"read-more\" href=\"https:\/\/www.valcon.it\/pascal\/shaker-sort\/\" aria-label=\"Leggi di pi\u00f9 su Shaker sort\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/599"}],"collection":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/comments?post=599"}],"version-history":[{"count":1,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/599\/revisions"}],"predecessor-version":[{"id":600,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/599\/revisions\/600"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/media?parent=599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/categories?post=599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/tags?post=599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}