0
点赞
收藏
分享

微信扫一扫

【C/C++】2024春晚刘谦春晚魔术步骤模拟+暴力破解

目录

排序应用

常见的排序算法  

BubbleSort冒泡排序

整体思路

图解分析 ​

代码实现

每趟

写法1

写法2

代码NO1

代码NO2优化

时间复杂度


排序概念

排序应用

常见的排序算法  

BubbleSort冒泡排序

整体思路

图解分析 

代码实现

每趟

写法1
	//写法1
	for (int i = 0; i < n-1; i++)
	{
		if (a[i] > a[i + 1])//i=n-1就越界了
		{
			Swap(&a[i], &a[i + 1]);
		}
	}
写法2
	//写法2
	for (int i = 1; i < n; i++)
	{
		if (a[i - 1] > a[i])//i=n-1没有越界,
		{
			Swap(&a[i - 1], &a[i]);
		}
	}

代码NO1

void Swap(int* p1, int* p2)
{
	int tmp = *p1;
	*p1 = *p2;
	*p2 = tmp;
}

void BubbleSort(int* a, int n)
{
	for (int j = 0; j < n; j++)
	{
		//一趟
		for (int i = 0; i < n - 1 - j; i++)//i要从第一个开始交换
		{
			if (a[i] > a[i + 1])//i=n-1就越界了
			{
				Swap(&a[i], &a[i + 1]);
			}
		}
    }

代码NO2优化

void Swap(int* p1, int* p2)
{
	int tmp = *p1;
	*p1 = *p2;
	*p2 = tmp;
}

void BubbleSort(int* a, int n)
{
	for (int j = 0; j < n; j++)
	{
		//一趟
		bool exchange = false;
		for (int i = 0; i < n - 1 - j; i++)//i要从第一个开始交换
		{
			if (a[i] > a[i + 1])//i=n-1就越界了
			{
				Swap(&a[i], &a[i + 1]);
				exchange = true;
			}
		}
		if (exchange == false)
		{
			break;
		}
    }
}

时间复杂度

🙂感谢大家的阅读,若有错误和不足,欢迎指正!

举报

相关推荐

0 条评论