Метод Bubblesort для сортировки вектора строк c ++ - PullRequest
0 голосов
/ 22 апреля 2020

Вопрос заключается в следующем: «Написать функцию void bubbleSort (vector & v), которая реализует метод bubblesort для сортировки вектора строк C ++, в лексикографии c (по возрастанию)»

And i ' Я написал этот код, но он не работает, и я могу понять это.

void swapvalue(string& v1, string& v2) { //change v2 to v1 position and v1 to v2 position
    string saveVariable;
    saveVariable = v2;
    v2 = v1;
    v1 = saveVariable;
}

int checkSize(string v1, string v2) {
    if (v1.length() >= v2.length())
        return 0;
    else
        return 1;
}

void bubbleSort(vector<string>& v) {
    unsigned int vectorSize = v.size();
    int increment = 0, count = 0;
    string smallestWord;
    while (increment != vectorSize) {

        for (int i = 0; i < vectorSize - increment - 1; i++) {
            count++;
            if (checkSize(v[i], v[i + 1])) //v[i+1] > v[i]
                smallestWord = v[i];
            else                           //v[i] >= v[i+1]
                smallestWord = v[i+1];

            for (int j = 0; j < smallestWord.length(); j++) {
                if (v[i][j] > v[i + 1][j]) {
                    swapvalue(v[i], v[i + 1]);
                }
            }

        }
        if (count == 0) //no changes to the vector
            break;
        count = 0;
        increment++;
    }
}

int main()
{
    vector<string> v = { "asdasd","asdweq", "a", "qweqw", "bhqwge", "b", "csdw" };
    bubbleSort(v);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...