阅读 182

冒泡排序函数

//升序,普通方式。#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函数中的数组名代表整个数组,所以只有在主函数中计算过后一起传参过去实现计算。

#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;}



文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐