冒泡排序函数

//升序,普通方式。#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;}


©著作权归作者所有:来自51CTO博客作者防.的原创作品,如需转载,请注明出处,否则将追究法律责任