我写了一个简单的 SFML 程序,我想看看有什么变化以及具体的排序算法是如何工作的。我怎样才能做到这一点。我尝试过多线程,但我可能不太了解如何使用它。你能帮我吗?我不想使用多线程解决方案。我是编程新手,我的英语不如我想的那么好,但我正在尽力而为。
这是我的代码。
for (int i = 0; i < shapes.size() - 1; i++)
{
for (int j = 0; j < shapes.size() - i - 1; j++)
{
if (shapes[j].getSize().y > shapes[j + 1].getSize().y && shapes[j].getPosition().x < shapes[j + 1].getPosition().x)
{
float changeSizeY = shapes[j].getSize().y;
shapes[j].setFillColor(sf::Color::Red);
shapes[j + 1].setFillColor(sf::Color::Red);
shapes[j].setSize(sf::Vector2f(shapes[j].getSize().x, shapes[j + 1].getSize().y));
shapes[j].setPosition(sf::Vector2f(shapes[j].getPosition().x, 1000 - shapes[j].getSize().y));
shapes[j + 1].setSize(sf::Vector2f(shapes[j + 1].getSize().x, changeSizeY));
shapes[j + 1].setPosition(sf::Vector2f(shapes[j + 1].getPosition().x, 1000 - shapes[j + 1].getSize().y));
target.clear();
for (sf::RectangleShape& shape : shapes) {
target.draw(shape);
}
target.display();
shapes[j].setFillColor(sf::Color::White);
shapes[j + 1].setFillColor(sf::Color::White);
}
}
}