#include <QtCore>
void bubbleSort(QVector<int>& array) {
int n = array.size();
bool swapped;
for (int i = 0; i < n - 1; i++) {
swapped = false;
for (int j = 0; j < n - i - 1; j++) {
if (array[j] > array[j+1]) {
qSwap(array[j], array[j+1]);
swapped = true;
}
}
if (!swapped) {
// 如果本轮没有发生交换,则表示数组已经有序,直接退出循环
break;
}
}
}
int main() {
QVector<int> array = {6, 2, 8, 1, 5};
bubbleSort(array);
qDebug() << "Sorted array:";
for (int i = 0; i < array.size(); i++) {
qDebug() << array[i];
}
return 0;
}
在这个示例中,我们使用QVector
作为容器来存储需要排序的数组。bubbleSort
函数使用两层循环进行冒泡排序,内层循环负责比较相邻元素并进行交换,外层循环控制总共的轮数。通过qSwap
函数来进行元素交换。
在内层循环中,如果某一轮没有进行任何元素交换,表示数组已经有序,直接退出循环,避免不必要的比较操作,提高效率。