{"id":1193,"date":"2015-03-28T15:21:33","date_gmt":"2015-03-28T14:21:33","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=1193"},"modified":"2019-07-29T14:33:40","modified_gmt":"2019-07-29T12:33:40","slug":"java-programozas-tobbszoros-rendezes-megoldasa","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=1193","title":{"rendered":"Java egyperces &#8211; T\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s megold\u00e1sa"},"content":{"rendered":"<h3><strong>Csak akkor olvass tov\u00e1bb, ha a <a title=\"T\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s\" href=\"http:\/\/www.webotlet.hu\/?p=1081\">t\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s<\/a> feladatot megoldottad, vagy nem siker\u00fclt megoldani.<\/strong><\/h3>\n<p>Adott teh\u00e1t egy Kutya oszt\u00e1ly. Minden kuty\u00e1r\u00f3l 2 tulajdons\u00e1got tartunk nyilv\u00e1n. Ezt kellene el\u0151bb fajta, majd azonos fajta eset\u00e9n \u00e9letkor szerint rendezni.<\/p>\n<h4>A megold\u00e1s<\/h4>\n<p>A feladat megold\u00e1sakor k\u00e9tszer rendez\u00fcnk. El\u0151sz\u00f6r az els\u0151 tulajdons\u00e1g szerint egy tetsz\u0151leges rendez\u00e9si algoritmussal:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nKutya&#x5B;] kutyak =\r\n  {\r\n    new Kutya(&quot;tacsko&quot;, 3),\r\n    new Kutya(&quot;labrador&quot;, 7),\r\n    new Kutya(&quot;labrador&quot;, 5),\r\n    new Kutya(&quot;vizsla&quot;, 1),\r\n    new Kutya(&quot;labrador&quot;, 2),\r\n    new Kutya(&quot;vizsla&quot;, 3),\r\n    new Kutya(&quot;labrador&quot;, 1),\r\n    new Kutya(&quot;tacsko&quot;, 2)\r\n  };\r\n\r\n\/\/ els\u0151 rendez\u00e9s az els\u0151 tulajdons\u00e1g szerint (fajta)\r\nKutya csere;\r\nfor( int i = 0; i &lt; kutyak.length-1; i++ )\r\n{\r\n  for( int j = i+1; j &lt; kutyak.length; j++ )\r\n  {\r\n    if( kutyak&#x5B;i].getFajta().compareTo( kutyak&#x5B;j].getFajta() ) &gt; 0 )\r\n    {\r\n      csere = kutyak&#x5B;i];\r\n      kutyak&#x5B;i] = kutyak&#x5B;j];\r\n      kutyak&#x5B;j] = csere;\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Ha ez megvan, akkor \u00fagy rendez\u00fcnk a m\u00e1sodik tulajdons\u00e1g alapj\u00e1n, hogy az els\u0151 tulajdons\u00e1gokat m\u00e1r nem keverj\u00fck \u00f6ssze. A kiemelt sorban l\u00e1that\u00f3 az a felt\u00e9tel, mely biztos\u00edtja, hogy csak akkor vizsg\u00e1ljuk meg a m\u00e1sodik tulajdons\u00e1got, ha az els\u0151 tulajdons\u00e1guk megegyezik! Ha ez teljes\u00fcl \u00c9S az \u00e9letkor nem j\u00f3 sorrendben \u00e1ll, akkor cser\u00e9l\u00fcnk. Nagyon fontos a k\u00e9t felt\u00e9tel vizsg\u00e1lat\u00e1nak sorrendje!<\/p>\n<pre class=\"brush: java; gutter: true; highlight: [6]; title: ; notranslate\" title=\"\">\r\n\/\/ m\u00e1sodik rendez\u00e9s a m\u00e1sodik tulajdons\u00e1g eset\u00e9n\r\nfor( int i = 0; i &lt; kutyak.length-1; i++ )\r\n{\r\n  for( int j = i+1; j &lt; kutyak.length; j++ )\r\n  {\r\n    if( kutyak&#x5B;i].getFajta().equals( kutyak&#x5B;j].getFajta() ) &amp;&amp;\r\n        kutyak&#x5B;i].getKor() &gt; kutyak&#x5B;j].getKor() )\r\n    {\r\n      csere = kutyak&#x5B;i];\r\n      kutyak&#x5B;i] = kutyak&#x5B;j];\r\n      kutyak&#x5B;j] = csere;\r\n    }\r\n  }\r\n}\r\n\/\/ ki\u00edrat\u00e1s ellen\u0151rz\u00e9sk\u00e9pp, a sorrend val\u00f3ban megfelel\u0151\r\nfor( Kutya k : kutyak )\r\n{\r\n  System.out.println( k.toString() );\r\n}\r\n<\/pre>\n<p>A megold\u00e1s k\u00e9t ciklust ig\u00e9nyel, ami az\u00e9rt l\u00e1ssuk be, nem t\u00fal hat\u00e9kony. Lehet-e m\u00e9g optimaliz\u00e1lni, egyszer\u0171s\u00edteni rajta?<\/p>\n<p>Olvasd el a a <a title=\"Java kieg\u00e9sz\u00edt\u0151 lecke \u2013 T\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s\" href=\"http:\/\/www.webotlet.hu\/?p=1260\">t\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s kieg\u00e9sz\u00edt\u0151 leck\u00e9j\u00e9t<\/a>, ha egyszer\u0171bb megold\u00e1sokat szeretn\u00e9l kapni.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Csak akkor olvass tov\u00e1bb, ha a t\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s feladatot megoldottad, vagy nem siker\u00fclt megoldani. Adott teh\u00e1t egy Kutya oszt\u00e1ly. Minden kuty\u00e1r\u00f3l 2 tulajdons\u00e1got tartunk nyilv\u00e1n. Ezt kellene el\u0151bb fajta, majd azonos fajta eset\u00e9n \u00e9letkor szerint rendezni. A megold\u00e1s A feladat <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=1193\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java egyperces &#8211; T\u00f6bbsz\u00f6r\u00f6s rendez\u00e9s megold\u00e1sa<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[57,97,86,61,143,28,96],"class_list":["post-1193","post","type-post","status-publish","format-standard","hentry","category-egyperces-feladatok-megoldasai","tag-boolean","tag-compareto","tag-java","tag-metodus","tag-programozas","tag-rendezes","tag-tobbszintu-rendezes"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1193"}],"version-history":[{"count":36,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1193\/revisions"}],"predecessor-version":[{"id":2474,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1193\/revisions\/2474"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}