冒泡排序bubble_sort

41 篇文章 0 订阅
17 篇文章 0 订阅

说明

  • 整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10],设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。
  • 排序规则:总的排序次数比数组中的元素少1(j = 0~input_len-1)
  • 每一次的排序次数比上一次少1(i = 0~input_len-1-j);
  • 比较都时候前一个元素和后一个元素依次比较

步骤

  1. 手动输入要排序的序列
  2. 从小到大排序
  • 代码如下:
#include<stdio.h>
#include<string>

void bubble_sort(int *input,int input_len)//取数组地址
{
	printf("排序前的数组是:");
	for (int j = 0; j < input_len; j++)
	{
		printf("%d, ", input[j]);
	}

	printf("开始排序。。。\n");
	int temp;
	for (int j = 0; j < input_len-1; j++)
	{
		for (int i = 0; i < input_len - 1-j ; i++)
		{
			if (input[i] > input[i + 1])
			{
				temp = input[i];
				input[i] = input[i + 1];
				input[i + 1] = temp;
			}
		}
	}

	printf("排序完成后的数组为:");
	for (int j = 0; j < input_len; j++)
	{
		printf("%d, ", input[j]);
	}
}
int main()
{
	int input[5];
	int input_len = sizeof(input) / sizeof(input[0]);
	printf("数组中元素个数input_len = %d\n", input_len);

	printf("请输入数组:\n");
	for (int i = 0; i < input_len; i++)
	{
		scanf_s("%d", &input[i]);
	}
	bubble_sort(input,input_len);//直接传数组名代表数组首地址

	return 0;
}

本人大部分代码开放免费,用于交流学习,有bug时还望指出,请勿直接抄袭,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值