c语言怎样通过函数调用实现选择排序法

c语言怎样通过函数调用实现选择排序法仔细的程序... c语言怎样通过函数调用实现选择排序法
仔细的程序
展开
 我来答
泡影果果616
推荐于2016-03-25 · 知道合伙人软件行家
泡影果果616
知道合伙人软件行家
采纳数:2005 获赞数:71338
软件技术从上学的时候就在研究,虽没最强大脑那般无敌,但依靠后天的勤奋学习,相信可以很专业的帮助更多人

向TA提问 私信TA
展开全部

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;i<5;i++)

printf("|%d|",TestData[i]);

int retData = SelectSort(TestData,5);

printf("排序之后的结果:\n");

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

printf("|%d|",TestData[i]);

return 0;

}

4、简单选择排序中,需要移动的记录次数比较少,主要的时间消耗在对于数据的比较次数。基本上,在比较的时候,消耗的时间复杂度为:n*n。

匿名用户
2013-07-31
展开全部
#include<stdio.h>
main()
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-02-27
展开全部
楼上那个是冒泡:

#include <stdio.h>

void selection_sort(int a[], int n)
{
int i, j, k;
for(i = 0; i < n; ++i)
{
k = i;
for(j = i + 1; j < n; ++j)
if(a[k] >= a[j])
k = j;
j = a[i];
a[i] = a[k];
a[k] = j;
}
}

int main()
{
int a[] = {3,6,1,2,9,5,4,7,0,8}, i;

selection_sort(a, 10);

for(i = 0; i < 10; ++i)
printf("%d ", a[i]);

return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式