冒泡排序

冒泡排序

哈楼大家好!这是fish的第一篇文章,之后打算先给大家仔细分享一下十大排序的内容,今天我们讲第一个冒泡排序

冒泡排序(Bubble Sort)是一种简单直观的排序算法,它每次比较两个元素的大小,数组跑完一次就相当于排序好一个数。

算法步骤#

每一次遍历一遍数组,在遍历的时候比较相邻两个元素的大小,看个人按照升降序把合适的数放到第二个位置上。
针对所有的的元素重复上面的步骤,遍历n(数组的大小)次就相当于整个数组排序完成。

实例演示#

总共6个数的排序,按照从小到大:3 38 5 1 9 4

遍历第一次,排序出一个最大的数

- [ ]

经过一次的循环遍历,最大的数38就已经来到了最末端的位置。

遍历第二次,就会排序好第二大的数到倒数第二个位置。

这里我们可以看到由于最后一个数的位置已经确定,我们可以省略一次比较,后续的遍历同理,遍历六次就排序好了6个数。

代码实现#

Copy
template <class T> void bubble_sort(std::vector<T> &arrs) { int n = arrs.size(); // 获取数组的大小 for (int idx_i = 0; idx_i < n; ++idx_i) { for (int idx_j = 0; idx_j < n - idx_i - 1; ++idx_j) { // 为什么是 < n - idx_i: // 每遍历一次就排序好一个数,下一次直接跳过后续排好的位置 if (arrs[idx_j] > arrs[idx_j + 1]) { // 根据需要判断,交换两个数 T temp = arrs[idx_j]; arrs[idx_j] = arrs[idx_j + 1]; arrs[idx_j + 1] = temp; // std::swap(arrs[idx_j], arrs[idx_j + 1]); } } } }

posted @   xigaun  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
CONTENTS