您的位置:首页 > 其它

排序方法----选择排序

2016-06-24 11:07 190 查看
选择排序法程序:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
void printfArray(inta[],int num)
{

inti=0;

for(i=0;i<num;i++ )

{
printf("%d  ",a[i]);

}
}
 
//选择排序
//外层循环 当i=0时,让j从
1—N进行变化
//外层循环 当i=1时,让j从
2—N进行变化
//外层循环 当i=2时,让j从
3—N进行变化
//....N=7时
//外层循环 当i=5时,让j从
6—N进行变化
//结论:按照一个变量i不变,让另一个变量j进行变化,下一轮依次进行
voidsortArray( int a[],int num )        //从小到大排序
{

inti,j,temp;
for( i=0;i<num-1;i++)        //外层循环

{
for( j=i+1;j<num;j++)        //内层循环:a[i]和a[j]比较大小,把小的放前面
{
if( a[i]>a[j])                //把小的放到前面

{
temp=a[i];
a[i]=a[j];
a[j]=temp;

}
}

}
}
 
//排序
void main()
{

inti=0,j=0;

inttemp=0,num=0;

inta[]={33,654,4,455,6,33,4};

num=sizeof(a)/sizeof(a[0]);

 
printf("排序前:");

printfArray(a,num);

printf("\n");
 

sortArray(a,num);
 
printf("排序后:");

printfArray(a,num);

printf("\n");
 

system("pause");

return;
}

Some Tips:

1、数组做函数参数,会退化为一个指针
2、把数组的内存首地址以及数组长度作为函数参数即可。
3、实参的a和形参的a的数据类型本质不一样
4、形参中的数组,编译器会把它优化为指针(C语言特色),指针类型为其定义的数据类型,决定了为其分配的内存空间大小。
5、形参写在函数声明括号内,和写在函数体内是一样的,只不过具有对外属性而已。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  选择排序法