Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QCoreApplication>
- #include <QDebug>
- struct Object {
- Object(const QString& name, int value) {
- this->name = name;
- this->value = value;
- }
- Object& operator= (const Object& other)
- {
- this->name = other.get_name();
- this->value = other.get_value();
- return *this;
- }
- const QString& get_name() const { return name; }
- int get_value() const { return value; }
- private:
- QString name;
- int value;
- };
- void outersort(const QList<Object>& data, QList<int>& indexes)
- {
- int n = indexes.length();
- int i, j;
- for (j = 0; i < n - 1; j++) {
- int iMin = j;
- for (i = j + 1; i < n; i++) {
- int x = data.at(indexes.at(i)).get_value();
- int y = data.at(indexes.at(iMin)).get_value();
- if (x < y) {
- iMin = i;
- }
- }
- if (iMin != j) {
- indexes.swap(j, iMin);
- }
- }
- }
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- QList<Object> objects;
- objects.append(Object("", 2));
- objects.append(Object("Drugi", 3));
- objects.append(Object("Pierwszy", 1));
- objects.append(Object("Czwarty", 6));
- objects.append(Object("", 5));
- objects.append(Object("Trzeci", 4));
- QList<int> indexes;
- for (int i = 0; i < objects.length(); ++i) {
- if (objects.at(i).get_name().length() > 0) {
- indexes.append(i);
- }
- }
- qDebug() << "Before:" << indexes;
- for (int i = 0; i < indexes.length(); ++i) {
- qDebug() << objects.at(indexes.at(i)).get_name();
- }
- outersort(objects, indexes);
- qDebug() << "\nAfter:" << indexes;
- for (int i = 0; i < indexes.length(); ++i) {
- qDebug() << objects.at(indexes.at(i)).get_name();
- }
- return a.exec();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement