Der Bubble-Sort-Algorithmus beginnt damit, die ersten beiden Elemente eines Arrays zu vergleichen und gegebenenfalls zu ersetzen. Wenn Sie beispielsweise die Elemente eines Arrays in aufsteigender Reihenfolge sortieren möchten und das erste Element größer als das zweite ist, müssen Sie die Elemente vertauschen. Wenn das erste Element kleiner als das zweite ist, dürfen Sie es nicht vertauschen. Das zweite und das dritte Element werden dann erneut verglichen und gegebenenfalls ausgetauscht, und dieser Prozess wird fortgesetzt, bis das letzte und das vorletzte Element verglichen und ausgetauscht wurden. Damit ist der erste Schritt der Blasensortierung abgeschlossen.
Wenn n Elemente zu sortieren sind, sollte der oben erwähnte Vorgang n-1 Mal wiederholt werden, um das gewünschte Ergebnis zu erhalten. Aber für eine bessere Performance im zweiten Schritt werden das letzte und das vorletzte Element nicht verglichen, da das entsprechende Element automatisch nach dem ersten Schritt ans Ende gesetzt wird. Ebenso werden im dritten Schritt die letzten und vorletzten und vorletzten Elemente nicht verglichen und so weiter.
Schauen wir uns zum besseren Verständnis die Abbildung an.
Die Abbildung zeigt 5 Elemente zum Sortieren und 4 Schritte.
Programm zum Sortieren von Elementen mit Bubble-Sort-Algorithmus
// Программа для сортировки данных в порядке возрастания с использованием пузырьковой сортировки. #include <stdio.h> int main() { int data[100],i,n,step,temp; printf("Enter the number of elements to be sorted: "); scanf("%d",&n); for(i=0;i<n;++i) { printf("%d. Enter element: ",i+1); scanf("%d",&data[i]); } for(step=0;step<n-1;++step) for(i=0;i<n-step-1;++i) { if(data[i]>data[i+1]) // Чтобы отсортировать в порядке убывания, измените > на < в этой строке. { temp=data[i]; data[i]=data[i+1]; data[i+1]=temp; } } printf("In ascending order: "); for(i=0;i<n;++i) printf("%d ",data[i]); return 0; }
Enter number of terms(should be less than 100): 5 Enter elements: 12 1 2 5 3 In ascending order: 1 2 3 5 12
Hinweis: Obwohl dieser Code in der C-Programmierung verwendet wird, kann diese Methode in jeder Programmierung verwendet werden, um die Elemente eines Arrays zu sortieren.
Der Bubble-Sort-Algorithmus ist sehr beliebt, aber es gibt viele bessere Algorithmen als Bubble-Sort.
Aufmerksamkeit! Blasensortierung sollte nicht zum Sortieren großer Datenmengen verwendet werden, wenn die Leistung dieses Programms ein Problem darstellt.