算法冒泡排序(一个简单的排序)
冒泡排序是一个比较简单的排序
但我觉得冒泡排序有一个小点(因为有些同学都不加)
冒泡排序可以设置一个flag来判断是否排完序,如果一遍排下来没有进行交换,就算是排完了,就不需要之后的循环,可以直接break。
代码:
void pop(int *arr,int size)
{
for(int i=size-1;i>0;i--)
{
bool flag = true;
for(int j=0;j<i;j++)
{
if(arr[j]>arr[j+1])
{
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
flag = false;
}
}
if(flag)
{
break;
}
}
}
void pop2(int *arr,int len)
{
for(int i=0;i<len-1;i++)
{
bool flag = true;
for(int j=len-2;j>=i;j--)
{
if(arr[j+1]<arr[j])
{
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
flag = false;
}
}
if(flag) break;
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想