当前位置:网站首页>c语言——冒泡排序
c语言——冒泡排序
2022-07-06 05:44:00 【bit..】
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。但这种改进对于提升性能来说并没有什么太大作用。
1. 算法步骤
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2. 动图演示
3. 什么时候最快
当输入的数据已经是正序时。
4. 什么时候最慢
当输入的数据是反序时(写一个 for 循环反序输出数据不就行了)
5. 代码实现(由大到小)
#include<stdio.h>
void Bubble_sort(int arr[], int size)
{
int i, j, tmp;
for (i = 0; i <= size - 1; i++)
{
for (j = 0; j <= size - 1 - i; j++)
{
if (arr[j] < arr[j + 1]) //如果要由小到大排列只需将'<'改成'>'即可实现
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[5], i;
printf("请输入五个数:");
for (i = 0; i < 5; i++)
{
scanf_s("%d", &arr[i]);
}
printf("排列前的数组:");
for (i = 0; i < 5; i++)
{
printf("%d", arr[i]);
}
printf("\n");
printf("排序后的数组:");
Bubble_sort(arr, 5);
for (i = 0; i < 5; i++)
{
printf("%d", arr[i]);
}
return 0;
}
边栏推荐
- Vulhub vulnerability recurrence 71_ Unomi
- 类和对象(一)this指针详解
- What preparations should be made for website server migration?
- Jvxetable用slot植入j-popup
- Codeless June event 2022 codeless Explorer conference will be held soon; AI enhanced codeless tool launched
- HAC cluster modifying administrator user password
- Pay attention to the details of pytoch code, and it is easy to make mistakes
- [machine learning notes] univariate linear regression principle, formula and code implementation
- Embedded interview questions (I: process and thread)
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
猜你喜欢
Clear floating mode
Game push image / table /cv/nlp, multi-threaded start
嵌入式面试题(四、常见算法)
Station B, Master Liu Er - dataset and data loading
Download, install and use NVM of node, and related use of node and NRM
【SQL server速成之路】——身份验证及建立和管理用户账户
初识数据库
什么是独立IP,独立IP主机怎么样?
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
数字经济破浪而来 ,LTD是权益独立的Web3.0网站?
随机推荐
Pytorch代码注意的细节,容易敲错的地方
H3C防火墙RBM+VRRP 组网配置
LeetCode_字符串反转_简单_557. 反转字符串中的单词 III
HAC cluster modifying administrator user password
[SQL Server Express Way] - authentification et création et gestion de comptes utilisateurs
Processes and threads
华为路由器忘记密码怎么恢复
RustDesk 搭建一个自己的远程桌面中继服务器
H3C V7版本交换机配置IRF
js Array 列表 实战使用总结
Promise summary
Remember an error in MySQL: the user specified as a definer ('mysql.infoschema '@' localhost ') does not exist
Codeless June event 2022 codeless Explorer conference will be held soon; AI enhanced codeless tool launched
嵌入式面试题(四、常见算法)
Station B, Master Liu Er - back propagation
初识数据库
B站刘二大人-数据集及数据加载 Lecture 8
How can large websites choose better virtual machine service providers?
网络协议模型
网站进行服务器迁移前应做好哪些准备?