Lernen Sie C++ von Grund auf und verwenden Sie Zeiger für die Blasensortierung

Der Code enthält die notwendigen Header-Dateien iostreamfür Ein-/Ausgabeoperationen.

using namespace std;Mit dieser Codezeile können Sie den stdNamespace verwenden, ohne den Namespace explizit anzugeben (Sie können ihn beispielsweise direkt coutanstelle von verwenden std::cout).

Ein Array der Größe 10 wird deklariert arrund mit unsortierten Ganzzahlwerten initialisiert.

definiert bubbleSortdie 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 bubbleSortder Funktion gibt es zwei verschachtelte forSchleifen. Die äußere Schleife wird len - 1mehrmals 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 - imehrmals ausgeführt, wobei idie 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 printArrayder Funktion foreine Schleife durch die Elemente des Arrays und verwenden Sie coutdie Anweisung zum Drucken.

In mainder Funktion wird ein neues Array deklariert arrund 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 bubbleSortdie Funktion auf und übergeben Sie das Array und seine Länge als zu sortierende Parameter.

Rufen Sie printArraydie 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;
}

おすすめ

転載: blog.csdn.net/dsafefvf/article/details/131378759