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

Python018

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

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

1、写一个简单选择排序法的函数名,包含参数。int SelectSort(int * ListData,int ListLength)

2、写两个循环,在循环中应用简单选择插入排序:

int SelectSort(int * ListData,int ListLength)

{

int i , j

int length = ListLength

for(i=0i<=length-2i++)

{

int k = i

for(j=i+1j<=length-1j++)

{

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

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

int retData = SelectSort(TestData,5)

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

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

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

return 0

}

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

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#include<stdio.h>

int main()

{

int i,j,a[10],t

printf("输入数")

for (i = 0i <10i++)

scanf("%d",&a[i])

for (i = 0i <10i++)

{

for (j = i + 1j <10j++)

if (a[i] <a[j]){

t = a[i]

a[i] = a[j]

a[j] = t

}

}

printf("从大到小")

for (i = 0i <10i++)

printf("%2d", a[i])

return 0

}

扩展资料:

代码还可以设计,如下:

#include<stdio.h>

int main()

{

int a[10],i,j,t//定义数组

for(i=0i<10i++){

scanf("%d",&a[i])//给数组赋值

}

for(i=0i<9i++)//10个数,进行9轮比较

for(j=0j<10-ij++){//第一个数比较9次,依次递减

if(a[j]>a[j+1]) {//交换值

t=a[j]

a[j]=a[j+1]

a[j+1]=t

}

}

for(i=0i<10i++){

printf("%d\n",a[i])//输出数组的值

}

return 0

}

}

printf("the sorted numbers:\n")

for(i=0i<10i++)

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

printf("\n")

}

参考资料:百度百科-printf

#include "stdio.h"

#define N 10

int main(int argc,char *argv[]){

int a[N],i,j,k

printf("Please enter %d integer(s)...\n",N)

for(i=0i<Nscanf("%d",a+i++))//输入

for(i=0i<Ni++){//选择法排序

for(k=i,j=k+1j<Nj++)

if(a[k]>a[j])

k=j

if(k!=i)

j=a[k],a[k]=a[i],a[i]=j

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

}

printf("\n")

return 0

}

代码图片和运行样例: