简单冒泡排序(c语言实现)

冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

#include<stdio.h>
#include<windows.h>
void BubbleSort(int a[],int n)
{
    
    
	int i = 0;
	int j = 0;
	int temp=0;
	for (i = 0; i < n-1; i++)
	{
    
    
		//冒泡排序
		for (j = 0; j < n - 1 - i; j++)
		{
    
    
			if (a[j] >a[j + 1])//具体是由小到大还是由大到小排取决于‘<’和‘>’;‘<’是由大到小,‘>’是由小到大
			{
    
    
				temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
				}
				}
		}
	}
int main()
{
    
    
	int a[] = {
    
     3,5,2,9,6,8,7,10,23,14 };//这里随便创建一个数组用于测试
	int n = sizeof(a) / sizeof(a[0]);
	int i = 0;
	printf("排序前:");
	for (i=0; i < n; i++)
	{
    
    
		printf("%d ", a[i]);
	}
	printf("\n");
	BubbleSort(a,n);
	printf("排序后:");
	for (i=0; i < n; i++)
	{
    
    
		printf("%d ", a[i]);
	}
	printf("\n");
	system("pause");
	return 0;
}

附图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46078890/article/details/106315696