qt 冒泡排序
时间: 2023-06-28 14:11:12 浏览: 69
冒泡排序是一种简单的排序算法,其基本思想是对待排序的元素从头到尾依次比较相邻两个元素的大小关系,若逆序则交换,经过一轮比较后,最大(或最小)的元素被交换到了最后面,然后再从头到倒数第二个元素进行比较,以此类推,直到所有元素都排好序。以下是使用 C++ 和 Qt 实现冒泡排序的代码示例:
```cpp
void bubbleSort(QList<int> &list) {
int n = list.size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (list[j] > list[j + 1]) {
qSwap(list[j], list[j + 1]);
}
}
}
}
```
在上述代码中,我们使用了 Qt 中提供的 QList 类型来存储待排序的元素,并通过引用传递的方式将其作为参数传入函数 bubbleSort 中。函数中使用两层循环分别遍历整个列表并比较相邻元素的大小,若逆序则交换它们的位置。最终,当外层循环执行完毕后,列表中的元素就按照从小到大的顺序排好了序。
相关问题
QT 冒泡排序
冒泡排序是一种简单的排序算法,其基本思想是对待排序的元素从头到尾依次比较相邻两个元素的大小关系,若逆序则交换,经过一轮比较后,最大(或最小)的元素被交换到了最后面,然后再从头到倒数第二个元素进行比较,以此类推,直到所有元素都排好序。以下是使用 C++ 和 Qt 实现冒泡排序的代码示例:
```cpp
void bubbleSort(QList<int> &list) {
int n = list.size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (list[j] > list[j + 1]) {
qSwap(list[j], list[j + 1]);
}
}
}
}
```
在上述代码中,我们使用了 Qt 中提供的 QList 类型来存储待排序的元素,并通过引用传递的方式将其作为参数传入函数 bubbleSort 中。函数中使用两层循环分别遍历整个列表并比较相邻元素的大小,若逆序则交换它们的位置。最终,当外层循环执行完毕后,列表中的元素就按照从小到大的顺序排好了序。
用qt实现冒泡排序
在 Qt 中实现冒泡排序与使用 C++ 实现冒泡排序的方法是相同的,只是输入和输出的方式可能会有所不同。下面是使用 Qt 实现冒泡排序的示例代码:
```c++
#include <QCoreApplication>
#include <QDebug>
#include <QVector>
void bubbleSort(QVector<int>& arr) {
for (int i = 0; i < arr.size() - 1; i++) {
for (int j = 0; j < arr.size() - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换相邻的元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVector<int> arr = {5, 3, 8, 6, 4};
bubbleSort(arr);
qDebug() << "Sorted array: " << arr;
return a.exec();
}
```
在上面的代码中,我们使用了 Qt 中的 `QVector` 类型来表示数组,`bubbleSort()` 函数的输入参数也做了相应的修改。在 `main()` 函数中,我们定义了一个 `QVector` 对象,并输出排序后的数组。