Heim  >  Artikel  >  php教程  >  Eine ausführliche Erklärung des Unterschieds zwischen Java-Bubble-Sortierung und Auswahlsortierung

Eine ausführliche Erklärung des Unterschieds zwischen Java-Bubble-Sortierung und Auswahlsortierung

高洛峰
高洛峰Original
2016-12-19 13:32:261267Durchsuche

Blasensortierung
Es besucht wiederholt das zu sortierende Array, vergleicht jeweils zwei Elemente und tauscht sie aus, wenn sie in der falschen Reihenfolge sind. Der Besuch des Arrays wird wiederholt, bis kein Austausch mehr erforderlich ist, was bedeutet, dass das Array sortiert wurde.
Der Code lautet wie folgt:

public class nums {
     public static void main(String[] args){
         int []nums = {5,4,3,2,1};
         for(int i = 0; i < nums.length; i++){
             for(int j = 0; j < nums.length-i-1; j++){
                 if(nums[j] > nums[j+1]){
                     int temp = nums[j];
                     nums[j] = nums[j+1];
                     nums[j+1] = temp;
                 }
             }
             for(int x = 0;x < nums.length;x++){
                  System.out.print(nums[x]+",");
              }
             System.out.print("\n");
         }
     }
 }

Die Ausgabe nach jeder Vergleichsrunde lautet wie folgt:

1 4,3,2,1,5,
2 3,2,1,4,5,
3 2,1,3,4,5,
4 1,2,3,4,5,
5 1,2,3,4,5,

Der Algorithmusfluss der Blasensortierung kann aus dem klar verstanden werden Ausgabe.
Auswahlsortierung
In jedem Durchgang wird das kleinste (oder größte) Element aus den zu sortierenden Datenelementen ausgewählt und die Reihenfolge wird am Ende der sortierten Sequenz platziert, bis alle zu sortierenden Datenelemente vorhanden sind sortiert.
Der Code lautet wie folgt:

public class nums {
     public static void main(String[] args){
         int []nums = {5,4,3,2,1};
         for(int i = 0; i < nums.length; i++){
             for(int j = 0; j < nums.length; j++){
                 if(nums[i] < nums[j]){
                     int temp = nums[i];
                     nums[i] = nums[j];
                     nums[j] = temp;
                 }
             }
             for(int x = 0;x < nums.length;x++){
                  System.out.print(nums[x]+",");
              }
             System.out.print("\n");
         }
     }
 }

Aus dem Code ist ersichtlich, dass in jeder Vergleichsrunde nums[i] mit jedem Element im Array verglichen wird.
Die Ausgabe nach jeder Vergleichsrunde ist wie folgt:

1 5,4,3,2,1,
2 4,5,3,2,1,
3 3,4,5,2,1,
4 2,3,4,5,1,
5 1,2,3,4,5,

Anhand der Ausgabeergebnisse ist der algorithmische Unterschied zwischen dieser und der Blasensortierung leicht zu erkennen.


Ausführlichere Erläuterungen zu den Unterschieden zwischen Java-Blasensortierung und Auswahlsortierung finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn