[JAVA] Shell sortieren

verdienen

Die Verarbeitungsgeschwindigkeit ist schnell

ShellSort.java



class ShellSort{
  
  public static void main(Srring[] args){
   
   //Array vor dem Sortieren
   int a[] = {10,4,2,1,3,8,5,6,};
   
   //Wiederholen Sie die Halbierung des Gruppierungsintervalls
   for(int step = a.length / 2 ; step > 0; sttep /= 2){
      //Sortierung in Intervallen einfügen
      //Abrufen von "Werten zum Einfügen" nacheinander aus dem Array
      for(int i = step; i < a.length ; i++){
         //Speichern Sie den Wert, der in eine Variable eingefügt werden soll
         int tmp = a[i];
         //Wiederholen Sie den Vergleich von der entfernten Position nach vorne
         int j = i ;
         for (j = i ; j >= step; j -= step){
            //Wenn der einzufügende Wert klein ist, verschieben Sie diesen Wert um die Schrittweite nach hinten.
            a[j] = a[j-step];
         } else {
           //Wenn der einzufügende Wert nicht klein ist, stoppen Sie dort den Verschiebungsprozess
           break;
         }
       }
       //Fügen Sie am Ende des Schichtvorgangs den "einzufügenden Wert" ein
       a[j] = tmp;
     }
   }
   //Anzeige des sortierten Arrays
   for (int i:a){
      System.out.println(i);
   }  
 }
}

Nachschlagewerk [Angenehmer Lernalgorithmus und Programmier-Bilderbuch](https://www.amazon.co.jp/%E6%A5%BD%E3%81%97%E3%81%8F%E5%AD%A6%E3%81] % B6-% E3% 82% A2% E3% 83% AB% E3% 82% B4% E3% 83% AA% E3% 82% BA% E3% 83% A0% E3% 81% A8% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E3% 81% AE% E5% 9B% B3% E9% 91% 91-% E6% A3% AE-% E5% B7% A7% E5% B0% 9A-ebook / dp / B01N56TW48)

Recommended Posts

Shell sortieren
Java-Shell-Sortierung