homework/cpp/myfunc.cpp

33 lines
773 B
C++

#include "myfunc.h"
bool compareWords(const char* a, int lenA, const char* b, int lenB) {
int minLen = (lenA < lenB) ? lenA : lenB;
int cmp = strncmp(a, b, minLen);
if (cmp == 0) {
return lenA < lenB;
}
return cmp < 0;
}
void bubbleSort(model arr[], int n) {
bool swapped;
for (int i = 0; i < n-1; i++) {
swapped = false;
for (int j = 0; j < n-i-1; j++) {
if (!compareWords(arr[j].ptr, arr[j].len, arr[j+1].ptr, arr[j+1].len)) {
// Zamiana miejscami
model temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
swapped = true;
}
}
if (!swapped) {
break;
}
}
}