首页 > 编程语言 >排序算法 冒泡排序 BubbleSort -- C语言实现

排序算法 冒泡排序 BubbleSort -- C语言实现

时间:2024-08-06 17:08:12浏览次数:13  
标签:end 数列 -- 交换 冒泡排序 C语言 int 排序

冒泡排序

描述

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。

什么时候最快

当输入的数据已经是正序时

什么时候最慢

当输入的数据是反序时

代码实现

特点:有序时效率高,实用性不强

//原理
/*
与下标后一个比较,符合交换,不符下一轮
*/

/*交换函数*/
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--;
	}

}

标签:end,数列,--,交换,冒泡排序,C语言,int,排序
From: https://www.cnblogs.com/DSCL-ing/p/18344190

相关文章

  • SchurVINS
    SchurVINS:SchurComplement-BasedLightweightVisualInertialNavigationSystemSchurVINS:基于Schur补的轻量级视觉惯性导航系统YunfeiFan,TianyuZhao,GuidongWang范云飞,赵天宇,王朝栋ByteDance字节跳动{frank.01,zhaotianyu.1998,guidong.wang}@bytedance.com{......
  • LeetCode-两数相加
    前言这道题将整数加法转换为在单链表上做加法运算,涉及到知识点:单链表的遍历单链表插入新节点题目描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。示例1:输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8......
  • 2024MX-MF-DAY1-text题解
    T1【题目描述】有\(n\)个人按编号从\(1\)到\(n\)坐成一圈,即第\(i\in[1,n]\)个人右边是\(i+1\),第\(n\)个人右边的人是\(1\)。初始,每个人手上有\(m\)个球。随后,\(n\)个人按编号从小到大的顺序依次执行如下操作:把自己手中的球分成数量相同且尽可能多的三份,......
  • K8S云原生-高可用集群部署V1.28.2
    一、环境准备K8S集群角色IP主机名安装相关组件master10.1.16.160hqiotmaster07lapiserver、controller-manager、scheduler、kubelet、etcd、docker、kube-proxy、keepalived、nginx、calicomaster10.1.16.161hqiotmaster08lapiserver、controller-manager、sc......
  • Number of k-good subarrays
    我们发现,如果我们将满足题意的点在数轴上标出,那么我们可以获得若干个连续段。对于一个长度为\(l\)的连续段,他对答案的贡献就是\(\frac{l(l+1)}{2}\),我们把所有连续段的贡献加起来就得到了答案于是我们发现这个可以拆分成子问题,具体见这篇题解。\(sol(n-mx,k-1)\)就是拆分成的子问......
  • Mac开发基础18-NSTableView(一)
    NSTableView是macOS应用程序中用于显示和管理数据表格的控件。它提供了丰富的API和高度自定义的能力,使得开发者可以精细地控制表格的显示和行为。本文将详细介绍NSTableView的常见API和一些基础技巧,并深入探讨其相关知识。1.基本使用创建和初始化Objective-C#import......
  • 如何利用竞争对手关键词赢得SEO市场?
    如何利用竞争对手关键词赢得SEO市场?无可否认,为你的网站选择正确的关键词非常重要。经过适当的研究,我们就会知道哪些关键词可以为网站带来大量目标流量——而这正是我们想要的。然而,我们都应该知道竞争对手的关键词的重要性。通过掌握竞争对手的关键词和反向链接信息,我们可以......
  • 电脑右键无新建文本
    电脑右键无新建文本文档按键盘上的win按钮打开菜单,找到windows附件文件包在里面找到记事本,打开记事本。创建一个txt文本,打开添加内容:WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT.txt]@=“txtfile”“ContentType”=“text/plain”[HKEY_CLASSES_ROOT.t......
  • AkSoundSeedAir.dll修复指南:游戏音频问题解决与预防技巧
    AkSoundSeedAir.dll是一个与声音引擎相关的动态链接库(DynamicLinkLibrary,简称DLL)文件,尤其与Wwise(AudiokineticWwise)声音设计和游戏音效中间件有关。Wwise是一个广泛应用于游戏开发的声音引擎,用于处理游戏中的音频和音效,AkSoundSeedAir.dll就是Wwise的一部分,用于实现声音处理......
  • git推代码
    $gitpushoriginmastergit推代码$gitadd.添加所有文件$gitstatus查看文件状态$gitcommit-m'fix:logo'Git常用基本命令使用详细大全_git命令行-CSDN博客gitclone:clone一个git仓库gitinit:初始化一个git仓库gitconfig:配置信息gitadd:添加文件到缓存命令g......