|

楼主 |
发表于 2016-3-29 11:39:04
|
显示全部楼层
第二种:冒泡法排序2函数调用-地址传递
/*
将uchar niu[8]={1,28,8,4,100,79,89,11};
该算法用途:AD采样时采样20次,选一个中间值作为最终采样的值,可以采取该算法。
采用冒泡法进行排序;(两个for循环嵌套);
****************************************************
编程思路:用最后一个数与前一个数比较,若比前一个数小
则交换位置,然后再与前一个数比较,若比前一个数小再交换
位置,知道比前一个数大或者已经在最前面!如此循环8次就可以排好循序!
*/
#include
#define uchar unsigned char
uchar a,b,c,j,k;
uchar nsd[8]={8,28,6,4,100,79,102,11};
uchar maopao(uchar niu[8]);
uchar maopao(uchar niu[8])
{
for(j=0;j<8;j++) //设置循环次数为8
{
for(k=7;k>j;k--) //从最后一个数开始与前一个数比较
{
if(niu[k]
{
c=niu[k-1];
niu[k-1]=niu[k];
niu[k]=c;
}
}
}
return 0;//这条可以不要,空的
}
void main()
{
maopao(nsd);
for(j=0;j<8;j++)
{
printf("%d\t",nsd[j]); //输出排好的数列
}
printf("\n");
} |
|