重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c语言通过函数调用实现选择排序法:
拜泉网站建设公司成都创新互联,拜泉网站设计制作,有大型网站制作公司丰富经验。已为拜泉数千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的拜泉做网站的公司定做!
1、写一个简单选择排序法的函数名,包含参数。int SelectSort(int * ListData,int ListLength);
2、写两个循环,在循环中应用简单选择插入排序:
int SelectSort(int * ListData,int ListLength)
{
int i , j ;
int length = ListLength;
for(i=0;i=length-2;i++)
{
int k = i;
for(j=i+1;j=length-1;j++)
{
if(ListData[k]ListData[j])
{
k=j;
}
}
if(k!=i)
{
int tmp = ListData[i];
ListData[i] = ListData[k];
ListData[k] = tmp;
}
}
return 0;
}
3、对编好的程序进行测试,得出测试结果:
int main()
{
int TestData[5] = {34,15,6,89,67};
int i = 0;
printf("排序之前的结果\n");
for(i = 0;i5;i++)
printf("|%d|",TestData[i]);
int retData = SelectSort(TestData,5);
printf("排序之后的结果:\n");
for(i = 0;i5;i++)
printf("|%d|",TestData[i]);
return 0;
}
4、简单选择排序中,需要移动的记录次数比较少,主要的时间消耗在对于数据的比较次数。基本上,在比较的时候,消耗的时间复杂度为:n*n。
#includestdio.h
#includestdlib.h
int comp(const void*a,const void*b)//用来做比较的函数。
{
return *(int*)a-*(int*)b;
}
int main()
{
int a[10] = {2,4,1,5,5,3,7,4,1,5};//乱序的数组。
int i;
qsort(a,10,sizeof(int),comp);//调用qsort排序
for(i=0;i10;i++)//输出排序后的数组
{
printf("%d ",a[i]);
}
return 0;
}
c语言和c++中,对于sort函数的使用,不同。c语言中没有预置的sort函数,如果在c语言中,要调用sort函数,就需要自定义一个用于排序的函数,或者使用c语言自有的qsort函数,其头文件为stdlib.h。
#includestdio.h
mian()
{
int f(int *pointer1,int *pointer2,int *pointer3); \\对要进行调用的函数进行声明
int change(int *po1,int *po2);
int a,b,c,*p1,*p2,*p3; \\定义整形三个变量和三个指针变量。
scanf("%d %d %d",a,b,c);
p1=a; p2=b; p3=c;
f(*p1,*p2,*p3); \\调用函数f()
printf("排序后的三个数为:%d%d%d\n",a,b,c);
}
int f(int *pointer1,int *pointer2,int *pointer3)
{
if(*pointer1*pointer2) change(*pointer1,*pointer2);
if(*pointer1*pointer3) change(*pointer1,*pointer3);
if(*pointer2*pointer3) change(*pointer2,*pointer3);
}
int change(int *po1,int *po2)
{
int t;
t=*po1;
*po1=*po2;
*po2=t;
}