{"id":675,"date":"2014-12-31T23:05:16","date_gmt":"2014-12-31T22:05:16","guid":{"rendered":"http:\/\/www.valcon.it\/pascal\/?p=675"},"modified":"2015-07-03T14:11:22","modified_gmt":"2015-07-03T12:11:22","slug":"selection-sort","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/pascal\/selection-sort\/","title":{"rendered":"Selection Sort"},"content":{"rendered":"<p>Algoritmo intuitivo e pi\u00f9 veloce del bubble sort.<\/p>\n<p>Si pu\u00f2 individuare il valore minimo in un array <strong>V<\/strong> e scambiarlo con il valore alla prima posizione.<\/p>\n<pre>PosMin:=1;\r\nFor j:=2 To N\r\n\u00a0 \u00a0If(V[j] < V[posMin]) Then\r\n\u00a0 \u00a0 \u00a0 PosMin=j;\r\nSCAMBIA(V, 1, PosMin)<\/pre>\n<p class=\"\">In questo modo l'elemento alla posizione 1 occupa definitivamente il posto che gli spetta...<\/p>\n<p class=\"\">Ripetendo la stessa operazione con i sottovettori<\/p>\n<div class=\"indent\" style=\"padding-left: 30px;\">da <strong>2<\/strong> a <strong>N-1<\/strong><br \/>\nda <strong>3<\/strong> a <strong>N-1<\/strong><br \/>\n...<br \/>\nda <strong>N-1<\/strong> a <strong>N<\/strong><\/div>\n<p>andranno <em>al loro posto<\/em> gli elementi alla posizione 2, 3, ..., N-1.<br \/>\nL'elemento alla posizione <strong>N<\/strong> occuper\u00e0 l'unico posto rimasto libero per l'elemento pi\u00f9 grande...<\/p>\n<pre class=\"\">Procedure SELESORT(Var V: Vettore; N: Integer);\r\nVar\r\n\u00a0 \u00a0 PosMin, i, j: Integer;\r\nBegin\r\n\u00a0 \u00a0 For i:=1 To N-1 Do\r\n\u00a0 \u00a0 \u00a0 \u00a0 Begin\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PosMin:=i;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 For j:=i+1 To N Do\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 If(V[j] < V[PosMin]) Then\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PosMin:=j;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SCAMBIA(V[i], V[PosMin]);\r\n\u00a0 \u00a0 \u00a0 \u00a0 End;\r\nEnd;<\/pre>\n<p>Osserva<\/p>\n<p style=\"padding-left: 30px;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-676 size-full\" src=\"http:\/\/www.valcon.it\/pascal\/wp-content\/uploads\/ss1.png\" alt=\"ss1\" width=\"422\" height=\"570\" srcset=\"https:\/\/www.valcon.it\/pascal\/wp-content\/uploads\/ss1.png 422w, https:\/\/www.valcon.it\/pascal\/wp-content\/uploads\/ss1-111x150.png 111w, https:\/\/www.valcon.it\/pascal\/wp-content\/uploads\/ss1-222x300.png 222w\" sizes=\"(max-width: 422px) 100vw, 422px\" \/><\/p>\n<h3>Miglioramento<\/h3>\n<p>Con un <tt>If(...) Then...<\/tt> aggiuntivo si pu\u00f2 evitare di eseguire inutilmente la <tt>SCAMBIA()<\/tt> quando un elemento occupa gi\u00e0 il posto <em>giusto<\/em><\/p>\n<pre class=\"\">Procedure SELESORT(var V: Vettore; N: Integer);\r\nVar\r\n \u00a0 PosMin, i, j: Integer;\r\nBegin\r\n \u00a0 For i:=1 To N-1 Do\r\n\u00a0 \u00a0 \u00a0 Begin\r\n \u00a0 \u00a0 \u00a0 \u00a0 PosMin:=i;\r\n \u00a0 \u00a0 \u00a0 \u00a0 For j:=i+1 To N Do\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 If(V[j] < V[PosMin]) Then\r\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 PosMin:=j;\r\n \u00a0 \u00a0 \u00a0 \u00a0 If(PosMin <> i) Then\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SCAMBIA(V[i], V[PosMin]);\r\n \u00a0 \u00a0  End;\r\nEnd;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Algoritmo intuitivo e pi\u00f9 veloce del bubble sort. Si pu\u00f2 individuare il valore minimo in un array V e scambiarlo con il valore alla prima posizione. PosMin:=1; For j:=2 To N \u00a0 \u00a0If(V[j] < V[posMin]) Then \u00a0 \u00a0 \u00a0 PosMin=j; SCAMBIA(V, 1, PosMin) In questo modo l'elemento alla posizione 1 occupa definitivamente il posto che ... <a title=\"Selection Sort\" class=\"read-more\" href=\"https:\/\/www.valcon.it\/pascal\/selection-sort\/\" aria-label=\"Leggi di pi\u00f9 su Selection 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\/675"}],"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=675"}],"version-history":[{"count":3,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/675\/revisions"}],"predecessor-version":[{"id":5665,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/675\/revisions\/5665"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/media?parent=675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/categories?post=675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/tags?post=675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}