{"id":3991,"date":"2024-08-06T22:22:37","date_gmt":"2024-08-06T20:22:37","guid":{"rendered":"https:\/\/www.capri-soft.de\/blog\/?p=3991"},"modified":"2024-08-07T08:55:08","modified_gmt":"2024-08-07T06:55:08","slug":"algorithmen-und-datenstrukturen-der-selection-sort-in-java","status":"publish","type":"post","link":"https:\/\/www.capri-soft.de\/blog\/?p=3991","title":{"rendered":"Algorithmen und Datenstrukturen: Der Selection Sort in Java"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Der Algorithmus<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\npackage AlgoDat;\n\npublic class SelectionSort {\n    \/\/ Zu sortierendes Array\n    private int myArray&#x5B;] = {22, 6, 2, 4, 10, 3, 9, 7, 5, 8, 1};\n\n    \/\/ H\u00e4lt die Klasse als instanziertes Objekt\n    @SuppressWarnings(&quot;unused&quot;)\n    private static SelectionSort program;\n\n    \/\/ Hilfsfunktion f\u00fcr das Ausgeben des Arrays\n    public void OutputOfIntArray(int myArray&#x5B;])\n    {\n        if (myArray != null)\n        {\n            for (int i = 0; i &lt; myArray.length; i++) {\n                if (i &gt; 0) System.out.print(&quot;;&quot;);\n                System.out.print(myArray&#x5B;i]);\n            }\n\n            System.out.println();\n        }\n    }\n\n    \/\/ Konstruktor\n    public SelectionSort()\n    {\n        System.out.print(&quot;Vorher: &quot;);\n        this.OutputOfIntArray(myArray);\n\n        \/\/ Laufe das zu sortierende Array von Anfang bis Ende durch\n        for (int idxSortierterBereich = 0; idxSortierterBereich &lt; myArray.length - 1 ; idxSortierterBereich++)\n        {\n            \/\/ Starte an der Index-Position der \u00e4u\u00dfersten Schleife - davor ist schon alles sortiert\n            int indexPivotElement = idxSortierterBereich;\n\n            for (int idxUnsortierterBereich = idxSortierterBereich + 1; idxUnsortierterBereich &lt; myArray.length; idxUnsortierterBereich++)\n            {\n                \/\/ ... und merke dir das kleinste Element\n                if (myArray&#x5B;indexPivotElement] &gt; myArray&#x5B;idxUnsortierterBereich])\n                {\n                    indexPivotElement = idxUnsortierterBereich;\n                }\n            }\n\n            \/\/ Dieser Code tauscht das neu gefundene Minimum mit dem Element am aktuellen Index der \u00e4u\u00dferen Schleife                \n            int swapVar = myArray&#x5B;indexPivotElement];\n            myArray&#x5B;indexPivotElement] = myArray&#x5B;idxSortierterBereich];\n            myArray&#x5B;idxSortierterBereich] = swapVar;\n\n            System.out.print(&quot;Tausche: &quot;);\n            this.OutputOfIntArray(myArray);\n        }\n\n        System.out.print(&quot;Nachher: &quot;);\n        this.OutputOfIntArray(myArray);\n    }\n\n    public static void main(String&#x5B;] args) \n    {\n        \/\/ Instanziere aus den statischem Programm ein echtes Objekt\n        \/\/ damit nicht alle Methoden und Variablen static sein m\u00fcssen.\n        program = new SelectionSort();\n    }\n}\n\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Ausgabe<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nVorher: 22;6;2;4;10;3;9;7;5;8;1\nTausche: 1;6;2;4;10;3;9;7;5;8;22\nTausche: 1;2;6;4;10;3;9;7;5;8;22\nTausche: 1;2;3;4;10;6;9;7;5;8;22\nTausche: 1;2;3;4;10;6;9;7;5;8;22\nTausche: 1;2;3;4;5;6;9;7;10;8;22\nTausche: 1;2;3;4;5;6;9;7;10;8;22\nTausche: 1;2;3;4;5;6;7;9;10;8;22\nTausche: 1;2;3;4;5;6;7;8;10;9;22\nTausche: 1;2;3;4;5;6;7;8;9;10;22\nTausche: 1;2;3;4;5;6;7;8;9;10;22\nNachher: 1;2;3;4;5;6;7;8;9;10;22\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Komplexit\u00e4t: O-Notation (Ordnung)<\/h2>\n\n\n\n<p>Zwei verschaltete Schleifen.<br>Die \u00e4u\u00dfere Schleife l\u00e4uft von 1 bis n;<br>Die innere Schleife l\u00e4uft vom Element der \u00e4u\u00dferen Schleife bis Schluss -&gt; also n\/2, da der Bereich immer kleiner wird.<\/p>\n\n\n\n<p>O(T(n)) =   O(n\u00b2)<\/p>\n<iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.capri-soft.de%2Fblog%2F%3Fp%3D3991&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" style=\"border:none; overflow:hidden; width:450px;margin-top:5px;\"><\/iframe>","protected":false},"excerpt":{"rendered":"<p>Der Algorithmus Ausgabe Komplexit\u00e4t: O-Notation (Ordnung) Zwei verschaltete Schleifen.Die \u00e4u\u00dfere Schleife l\u00e4uft von 1 bis n;Die innere Schleife l\u00e4uft vom Element der \u00e4u\u00dferen Schleife bis Schluss -&gt; also n\/2, da der Bereich immer kleiner wird. O(T(n)) = O(n\u00b2)<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[454,459,458,457,464,465,461,462],"class_list":["post-3991","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-algodat","tag-algorithmen","tag-algorithmus","tag-java","tag-selection-sort","tag-selektion-sort","tag-sortieralgorithmus","tag-sortieren"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4yGeN-12n","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3991"}],"version-history":[{"count":4,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3991\/revisions"}],"predecessor-version":[{"id":3999,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3991\/revisions\/3999"}],"wp:attachment":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}