C语言 — 冒泡排序

前言

冒泡排序:实现一个对整形数组的排序

使用冒泡排序对数组进行升序排序

[c语言代码]代码程序在文章末尾

如果有帮助,还请各位小伙伴多多点赞关注收藏,后期会持续进行更新!!!

目录

前言

什么是冒泡排序

代码思路讲解(逐步讲解)

使用冒泡排序的次数

第一趟冒泡排序

第二趟冒泡排序

运行结果

代码实现


什么是冒泡排序

C语言 — 冒泡排序_第1张图片

 (小编很懒~~~)

代码思路讲解(逐步讲解)

使用冒泡排序的次数

数组有n个元素(这里以数组里有10个整形元素)

就要进行n-1次冒泡排序(就要进行9次冒泡排序)

要进行9趟冒泡排序 ,用for循环语句进行,代码如下


    int i = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);//对数组元素计算 sz=10
	for (i = 0; i < sz - 1; i++)//数组里有10个元素,要进行9套冒泡排序
	{
		
        //这里是一趟冒泡循环代码

	}

第一趟冒泡排序

C语言 — 冒泡排序_第2张图片

 (这里用有序数组进行讲解,方便进行理解)

这里 9 在第一位    要完成升序  9应该在最后一位

9与8进行比较   如果前一个数字比后一个数字大进行交换

9从第一位到最后要进行9次交换 

    int i = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);//对数组元素计算 sz=10
	for (i = 0; i < sz - 1; i++)//数组里有10个元素,要进行9套冒泡排序
	{
		int j = 0;
		for (j = 0; j  arr[j + 1])
			{
				int tem = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tem;
			}
		}
	}

第二趟冒泡排序

C语言 — 冒泡排序_第3张图片

 这里9是数组里最大的元素,通过一趟冒泡排序到了最后一位,现在进行0~8之间的排序

8是数组中第二大的应该在倒数第二位

要进行8次交换

 ...

以下依次冒泡排序进行少一次交换

运行结果

C语言 — 冒泡排序_第4张图片

代码实现

【编译器vs2019】

#define _CRT_SECURE_NO_WARNINGS 1
#include
void mpao(int arr[10],int sz)
{
	int i = 0;

	for (i = 0; i < sz - 1; i++)//数组里有10个元素,要进行9套冒泡排序
	{
		int j = 0;
		for (j = 0; j  arr[j + 1])
			{
				int tem = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tem;
			}
		}
	}
 }
int main()
{
	int arr[10] = {0};
	
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		scanf("%d", &arr[i]);
	}
	
	mpao(arr,sz);
	
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

你可能感兴趣的:(C语言,c语言,c++,排序算法,数据结构,开发语言)