c语言题目之利用冒泡排序算法解决十个乱序数字排成升序数字

1, 学习目标:

利用冒泡排序算法解决十个乱序数字排成升序数字
题目:随机输出十个数 按照从小到大的顺序重新排列
假设输入的值为 9 8 7 6 5 4 3 2 1
输出为:1 2 3 4 5 6 7 8 9


2,学习内容:

例如:

  1. 冒泡排序的核心思想
  2. 利用冒泡排序求解问题

3, 冒泡排序的核心思想

1,什么是冒泡排序?

什么是冒泡排序呢?冒泡排序的英文名叫Bubble sort,是一种最基础的交换排序
大家一定都喝过可乐吧,可乐中有许多小小的气泡往上冒,这是因为小气泡比水轻,所以小气泡会一点一点的向上浮,冒泡排序之说以叫冒泡排序,正是因为这种排序算法会把排序元素当成小气泡,根据数值大小,一点一点向着数组的一侧移动。

2,冒泡排序的核心思想:

相邻两个元素的值进行比较进行比较

思路稿图以下如图 :

在这里插入图片描述


4,代码实现:

void bubble_sort(int arr[],int sz)
{
	//确定趟数
	int i = 0;
	for (i = 0; i < sz-1; i++)
	{
		//一趟冒泡排序
		int j = 0;
		for (j = 0; j <sz-1-i ; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = 0;
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}

}
#include<stdio.h>
int main()
{
	int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
	int j = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (j = 0; j < sz; j++)
	{
		scanf("%d",&arr[j]);
	}
	bubble_sort(arr,sz);
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ",arr[i]);
	}
	return 0;
}
如本文案对各位读者有所帮助,双击点赞,后续题目及相关c语言知识小编会持续更新

在这里插入图片描述

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 当然可以,以下是一个简单的冒泡排序算法C语言实现: ``` void bubble_sort(int arr[], int n) { int i, j, temp; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } ``` 这个算法的时间复杂度是O(n^2),所以对于大规模的排序可能不太适合。 ### 回答2: 冒泡排序算法是一种简单的基于比较的排序算法,它通过重复地交换相邻的两个元素来将序列中较大的元素逐渐移到右侧,从而达到排序的目的。下面是使用C语言编写的冒泡排序算法示例: ```c #include <stdio.h> void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { // 如果当前元素比下一个元素大,则交换它们 if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); printf("排序前的组:\n"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } bubbleSort(arr, n); printf("\n排序后的组:\n"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` 以上代码中,`bubbleSort`函接收一个整组和组长度作为输入,然后使用嵌套的循环来比较相邻的元素,并根据需要进行交换。主函中定义了一个整组,并将其作为参传递给`bubbleSort`函以进行排序。最后,打印排序前后的组以验证算法的正确性。 ### 回答3: 冒泡排序是一种简单的排序算法,它通过多次比较相邻的元素,并依次交换相邻元素的位置来实现排序。下面是用C语言实现冒泡排序算法的示例代码: ```c #include <stdio.h> void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 交换相邻元素的位置 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = {5, 2, 8, 9, 1}; int n = sizeof(arr) / sizeof(arr[0]); bubbleSort(arr, n); printf("排序后的组: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` 以上代码中,`bubbleSort`函实现了冒泡排序算法。在主函中,我们定义了一个整组`arr`,并通过`sizeof`运算符获取组的元素个`n`。然后调用`bubbleSort`函组进行排序,并打印排序后的组结果。 冒泡排序的思想是从第一个元素开始,将相邻两个元素进行比较,如果前一个元素大于后一个元素,则交换它们的位置。通过多次遍历和交换操作,将最大的元素逐渐冒泡到组的最后位置。一共需要进行`n-1`次遍历,每次遍历都会将当前未排序部分最大的元素放到正确的位置上。最终排序完成后,组中的元素将按照从小到大的顺序排列。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值