排序算法 冒泡排序 BubbleSort -- C语言实现
1.排序算法 冒泡排序 BubbleSort -- C语言实现
2.排序算法 选择排序 SelectSort -- C语言实现3.排序算法 归并排序 MergeSort -- C语言实现4.排序算法 希尔排序 ShellSort -- C语言实现5.排序算法 快速排序 quickSort -- C语言实现6.排序算法 插入排序 InsertSort -- C语言实现7.排序算法 基数排序 RadixSort --C语言实现8.排序算法 内省排序(STL sort) IntroSort --C/C++9.排序算法 常见排序算法特性比较10.排序算法 排序性能测试代码(随机数调整,高精度时间) - C++冒泡排序
描述
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
冒泡排序的缺点:
- 效率低下:冒泡排序的时间复杂度始终是 𝑂(𝑛2)O(n2),无论最好、平均还是最坏情况。这使得它在处理大量数据时效率极低。
- 大量的比较和交换操作:在每一轮遍历中,冒泡排序都需要与相邻的元素进行比较,并可能进行交换,这导致了大量的比较和交换操作。
什么时候最快
当输入的数据已经是正序时
什么时候最慢
当输入的数据是反序时
特点
当一轮遍历下来没有发生交换时,即前一个都比后一个小,说明已经有序.
评价:
基本上没有价值,可以被插入排序暴打
代码实现
特点:有序时效率高,实用性不强 static void Swap(int *p1, int *p2) { int tmp = 0; tmp = *p1; *p1 = *p2; *p2 = tmp; } void BubbleSort(int *a, int n) { int end = n - 1; while (end>0) { int exchange = 0; for (int i = 0; i < end; i++) { if (a[i] > a[i + 1]) { Swap(&a[i], &a[i + 1]); exchange = 1; //交换 } } if (exchange == 0){ break; } end--; } }
本文来自博客园,作者:HJfjfK,原文链接:https://www.cnblogs.com/DSCL-ing/p/18344190
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了