首页 > 编程语言 >冒泡排序算法

冒泡排序算法

时间:2023-01-08 11:00:10浏览次数:41  
标签:arr int 冒泡排序 算法 len printf array

基本原理

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

在这个过程中,数字会像泡泡一样,慢慢从右往左“浮”到序列的顶端,所以这个算法才被称为“冒泡排序”。

动画演示

示例代码

#include<stdio.h>
 
void BubbleSort(int array[], int len)
{
	int i, j, temp;
	for (j = 0; j < len - 1; j++)
	{
		for (i = 0; i < len - 1 - j; i++)
		{ 
			if (array[i] > array[i + 1])
			{
				temp = array[i];
				array[i] = array[i + 1];
				array[i + 1] = temp;
			}
		} 
	}
}

void PrintArray(int array[], int len)
{
	int i = 0;
	for (i = 0; i < len; i++)
	{
		printf("%d ", array[i]);
	}
	printf("\n");
}
 
int main()
{
	int arr[] = { 29, 10, 14, 37, 8 };
	int len = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	printf("冒泡排序前:");
	PrintArray(arr,len); 
	
	BubbleSort(arr, len);
	
	printf("冒泡排序后:");
	PrintArray(arr,len);

	return 0;
}

标签:arr,int,冒泡排序,算法,len,printf,array
From: https://www.cnblogs.com/Wayne123/p/17034236.html

相关文章

  • 冒泡排序,快速排序
        ......
  • 算法刷题 Day 11 | 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰
    20.有效的括号讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。大家先自己思考一下有哪些不匹配的场景,在看视频我讲的都有哪些场景,落实到代码其实就容易......
  • 贪心算法 独木舟 HZOJ
    题面: 解题思路:有两个点必须记住,一条船只能做两个人,且两个人重量相加不能超过最大负载量。因此,第一步,我们先对n个人的体重进行从小到大排序,然后从第一个开始,如果第一......
  • 算法之Dijkstra及其堆优化和SPFA:图上单源最短路径神器
    签到题……题目传送门SPFA算法本人曾经写过一篇有关Bellman-ford的博,但就算是挂了优化的ford也只能过这道题的弱化版。今天就先填个坑,先讲SPFA。在这里我直接认为你们......
  • 代码随想录算法训练营第11天
    今日刷题3道:20.有效的括号,1047.删除字符串中的所有相邻重复项,150.逆波兰表达式求值● 20.有效的括号题目链接/文章讲解/视频讲解:https://programmercarl.com......
  • 算法学习笔记(50)——记忆化搜索
    记忆化搜索题目链接:AcWing901.滑雪题目描述给定一个\(R\)行\(C\)列的矩阵,表示一个矩形网格滑雪场。矩阵中第\(i\)行第\(j\)列的点表示滑雪场的第\(i\)行......
  • 算法学习笔记(49)——树形DP
    树形DP题目链接:AcWing285.没有上司的舞会题目描述Ural大学有\(N\)名职员,编号为\(1∼N\)。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个......
  • 安全帽识别算法技术原理
    应用背景:安全帽作为一种最常见和实用的个人防护用具,能够有效地防止和减轻外来危险源对头部的伤害。但在现场操作过程中,安全帽的佩戴很容易人为忽略,引发了不少人身伤害事故。......
  • 每日算法之在二叉树中找到两个节点的最近公共祖先
    JZ86在二叉树中找到两个节点的最近公共祖先题目给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值o1和o2,请找到o1和o2的最近公共祖先节点。注:本题保......
  • 简单算法:优先队列
    典型题目题目传送门优先队列对于蒟蒻来说,堆之类的……实在是有点不好理解。所以我们今天只从表面上讲讲什么是优先队列,并且争取做到熟练的运用(知其然不知其所以然)就好......