Вопрос заключается в следующем: «Написать функцию 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;
}