使用冒泡排序算法,对整型数组升序处理

#include<stdio.h>
int main()
{

	/*
	对这数组排序的基本思路已经出来了:
	一趟冒泡排序可以确定一个数来到最终的位置,数组中有n个数的话,就要进行n-1趟冒泡排序,一趟冒泡排序内部是相邻元素的比较。
	*/
	// 根据数组中的元素个数,判断趟数
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10};
	int sz = sizeof(arr) / sizeof(arr[1]);
		//趟数为sz-1,实现趟数,使用循环
	int i = 0;
	for (i = 0;i < sz - 1;i++)
	{
	// 进入循环一次,就是一趟,一趟内部是相邻元素的比较。
		// 使用下标来定位元素
		//arr[j] arr[j+1]
		// 一趟冒泡排序内部要进行多少对的比较,随着趟数的增加,需要排序的元素变少,需要比较的对数也就变少。
		// 第一趟要进行9对,第二趟要进行8对,第三趟要进行7对。
		// 为了实现这些重复的比较,使用循环,重复比较的对数减少,循环的次数减少。
		int j = 0;
		for (j = 0;j < sz - 1 - i;j++)
		{
			//对相邻的元素进行判断
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j+1];
				arr[j + 1] = tmp;
			}
		}
	}
	// 在控制台输出升序后的数组
	// 重复打印10次,要使用循环实现
	int e = 0;
	while (e < 10)
	{
		printf("%d ", arr[e]);
		e++;
	}
	return 0;
}

2022.6.18日

对于这次的学习,我认为写下一个代码,应该先有一个大概的思路,在根据这个思路逐渐向下延申。

这个通过使用冒泡排序算法,实现一个整型数组的升序。

大概思路是:一趟冒泡排序,可以安排好一个元素,n个元素,则需要n-1趟,而一趟冒泡排序的内部,则是相邻两个元素的相互交换。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值