冒泡排序函数

//升序,普通方式。
#include <stdio.h>
#include <string.h>
int main()
{
	int i, j, x;
	int num[] = { 5,4,3,2,1 };
	int sz;
	sz = sizeof(num) / sizeof(num[0]);
	for (i = 1; i < sz; i++)
	{
	        int flaot=1;                                                                      //定义Float.可省略,只是为了使程序执行效率更高。
		j = 0;
		for (j = 0; j < sz - i; j++)
		{
			if (num[j] > num[j + 1])
		       {
			    x = num[j + 1];
			    num[j + 1] = num[j];
			    num[j] = x; 
			    float=0;
			}

		}
		if(1==float)                                                              //break语句不能出如今IF语句中国,可是这里是for循环,因此可用。
		{
		   break;
		   }
	}
	for (i = 0; i < sz; i++)
	{
		printf("%d ", num[i]);

	}
	return 0;
}

下面介绍函数实现方式:
首先介绍两点:
1.函数传参过去的数组名,是首地址的值,而非整个数组。数组

2.可是在SIZEOF函数中的数组名表明整个数组,因此只有在主函数中计算事后一块儿传参过去实现计算。ide

#include <stdio.h>
#include <string.h>
void px(int num[], int sz)
{
	int i, j;
	int x;


	for (i = 1; i < sz; i++)
	{
		j = 0;
		for (j = 0; j < sz - i; j++)
		{
			if (num[j] > num[j + 1])
			{
				x = num[j + 1];
				num[j + 1] = num[j];
				num[j] = x;
			}

		}
	}
}
int main()
{
	int i, j, x;
	int num[] = { 5,4,3,2,1 };
	int sz;
	sz = sizeof(num) / sizeof(num[0]);
	px(num, sz);
	
	for (i = 0; i < sz; i++)
	{
		printf("%d ", num[i]);

	}
	return 0;
}
相关文章
相关标签/搜索