最简单的排序算法——冒泡排序

531 阅读1分钟

「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战」。

算法讲解

冒泡排序应该是每个人都要掌握的最基本的排序算法,其时间复杂度为为O(N^2),速度慢但是逻辑很简单
冒泡算法之所以叫冒泡算法是因为小的元素会经交换像气泡一样慢慢"浮"到数列的前端
冒泡排序就是通过元素不断交换来改变位置,假如有5个泡泡(元素),那么我们开始第一趟冒泡比较,第一个泡和第二个泡比较大小,大的泡泡会放在下面的位置,那么就有2个可能,要么小泡往上冒,要么不动,那么我一直2 个相邻的泡泡进行大小比较,出现下面的气泡小就往上冒,那么比到最后一个泡就结束了第一趟过程,这样我们的最后一个泡泡就是最大的。 接下来我们就需要把剩余的4个泡继续上面过程,我们知道冒一趟就找到一个最大的放他对应的位置,那么就5个泡,我们假如冒了4趟后,则大的4个泡泡就已经在最后面,排序就完成了

C语言示例

#include <stdio.h>
void bubble_sort(int arr[], int len)
{
        int i, j, temp;
        for (i = 0; i < len - 1; i++)
                for (j = 0; j < len - 1 - i; j++)
                        if (arr[j] > arr[j + 1])
                        {
                                temp = arr[j];//这段代码的作用是交换两个元素
                                arr[j] = arr[j + 1];
                                arr[j + 1] = temp;
                        }
}
int main() 
{
        int n;
        scanf("%d",&n);
        int a[n];
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        bubble_sort(a, n);
        int i;
        for (i = 0; i < len; i++)
                printf("%d ", arr[i]);
        return 0;
}

总结

日拱算法无有尽,功不唐捐终入海😁