Der Code enthält die notwendigen Header-Dateien iostream
für Ein-/Ausgabeoperationen.
using namespace std;
Mit dieser Codezeile können Sie den std
Namespace verwenden, ohne den Namespace explizit anzugeben (Sie können ihn beispielsweise direkt cout
anstelle von verwenden std::cout
).
Ein Array der Größe 10 wird deklariert arr
und mit unsortierten Ganzzahlwerten initialisiert.
definiert bubbleSort
die Funktion, die den Blasensortierungsalgorithmus implementiert, um das Array in aufsteigender Reihenfolge zu sortieren. Als Parameter benötigt die Funktion einen ganzzahligen Zeiger ( int* arr
) und die Länge des Arrays ( int len
).
Innerhalb bubbleSort
der Funktion gibt es zwei verschachtelte for
Schleifen. Die äußere Schleife wird len - 1
mehrmals ausgeführt und gibt die Anzahl der Durchgänge an, die zum Sortieren des Arrays erforderlich sind.
Die innere Schleife vergleicht benachbarte Elemente im Array und tauscht sie aus, wenn sie nicht in der richtigen Reihenfolge sind. Die innere Schleife wird in jedem Durchgang len - 1 - i
mehrmals ausgeführt, wobei i
die aktuelle Durchgangsnummer der äußeren Schleife angegeben ist.
Wenn das aktuelle Element arr[j]
größer als das nächste Element ist , wird die temporäre Variable zum Positionstausch arr[j + 1]
verwendet .temp
Die Funktion ist so definiert printArray
, dass sie die Elemente des Arrays druckt. Die Funktion benötigt ein ganzzahliges Array ( arr
) und die Länge des Arrays ( len
) als Parameter.
Verwenden Sie innerhalb printArray
der Funktion for
eine Schleife durch die Elemente des Arrays und verwenden Sie cout
die Anweisung zum Drucken.
In main
der Funktion wird ein neues Array deklariert arr
und mit denselben Werten wie das vorherige Array initialisiert.
Berechnet die Länge eines Arrays, indem die Gesamtgröße des Arrays durch die Größe einer Ganzzahl dividiert wird.
Rufen Sie bubbleSort
die Funktion auf und übergeben Sie das Array und seine Länge als zu sortierende Parameter.
Rufen Sie printArray
die Funktion auf, um das sortierte Array zu drucken.
Verwenden Sie system("pause");
die Anweisung, um die Programmausführung anzuhalten, damit Sie die Ergebnisse im Konsolenfenster anzeigen können.
return 0;
Beenden Sie die Ausführung des Programms und geben Sie 0 zurück, was eine erfolgreiche Ausführung anzeigt.
#include <iostream>
using namespace std;
int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };
// 冒泡排序算法,用于将数组按升序排序
void bubbleSort(int* arr, int len) // int* arr 可以写作 int arr[]
{
for (int i = 0; i < len - 1; i++) // 外层循环表示需要进行的趟数
{
for (int j = 0; j < len - 1 - i; j++) // 内层循环进行每趟的比较
{
if (arr[j] > arr[j + 1]) // 如果当前元素大于下一个元素
{
// 交换这两个元素的位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 打印数组元素的函数
void printArray(int arr[], int len)
{
for (int i = 0; i < len; i++)
{
cout << arr[i] << endl;
}
}
int main() {
int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };
int len = sizeof(arr) / sizeof(int); // 计算数组的长度
bubbleSort(arr, len); // 使用冒泡排序对数组进行排序
printArray(arr, len); // 打印排序后的数组
system("pause");
return 0;
}