2

バブルソートを使用して不規則なテーブルをソートしようとしていました。私が持っているアルゴリズムは最初の行のみを並べ替えますが、残りの行は並べ替えません。問題は、「最後の」変数が適切に初期化されていないことだと思います。

void bubbleSort (int **table)
{
// Local Declarations
    int temp;
    int current;
    int walker;
    int column;
    int row=0;
    int numCol = 0;
    int last = *table[numCol];

// Statements
    while (table[row] != NULL) {
        for (column = 2; column <= *table[row]; column++) {
            for (current = 2; current < last; current++) {
                bool swapsOccured = false;
                for (walker = last; walker > current; walker--) {
                    if (table[row][walker] > table[row][walker - 1]) {
                        swapsOccured = true;
                        temp                   = table[row][walker];
                        table[row][walker]     = table[row][walker - 1];
                        table[row][walker - 1] = temp;
                        } // if
                    } // for walker
                if (!swapsOccured)
                    return;
                } // for current
            }
            row++;
        } // while
    return;
}
4

0 に答える 0