描述
- 基本思想:循环地利用比较交换的操作,将第i大的元素归位;
- 平均时间复杂度:O(n2),最好时间复杂度:O(n),最坏时间复杂度:O(n2);
- 空间复杂度:O(1)
源码
//冒泡排序
void BubbleSort(vector<int>& nums) {
for (int i = nums.size()-1; i >= 0;--i) {
bool flag = true;
for (int j = 0; j < i; ++j) {
if (nums[j] > nums[j + 1]) {
swap(nums[j], nums[j + 1]);
flag = false;
}
}
if (flag) break;
}
}
本文深入解析冒泡排序算法,介绍其基本思想为通过不断比较和交换操作,使最大元素逐步移动到正确位置。讨论了该算法的时间复杂度,包括平均O(n^2),最好O(n),最坏O(n^2),以及空间复杂度O(1)。通过具体源码示例,展示冒泡排序的实现过程。
928

被折叠的 条评论
为什么被折叠?



