C语言选择排序法函数,C语言用函数排序

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

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。

C语言选择法排序

#includestdio.h

#define M 5

void main()

{

int b[M],i,j,t,k;

for(i=0;iM;i++)

scanf("%d",b[i]);

for(i=0;iM-1;i++)

{

for(k=i,j=i+1;jM;j++)

if(b[k]b[j])

k=j;

if(i!=k)

{

t=b[i];

b[i]=b[k];

b[k]=t;

}

}

for(i=0;iM;i++)

printf("%d ",b[i]);

}

错在大括号位置加错了。

扩展资料:

C语言选择排序详解

工作原理是每一次从无序组的数据元素中选出最小(或最大)的一个元素,存放在无序组的起始位置,无序组元素减少,有序组元素增加,直到全部待排序的数据元素排完。

以升序为例的图解:

代码:

#includestdio.h

void SelectionSort(int *num,int n)

{

int i = 0;

int min = 0;

int j = 0;

int tmp = 0;

for(i = 0;i n-1;i++)

{

min = i;//每次讲min置成无序组起始位置元素下标

for(j = i;j n;j++)//遍历无序组,找到最小元素。

{

if(num[min]num[j])

{

min = j;

}

}

if(min != i)//如果最小元素不是无序组起始位置元素,则与起始元素交换位置

{

tmp = num[min];

num[min] = num[i];

num[i] = tmp;

}

}

}

(此处空一行)

int main()

{

int num[6] = {5,4,3,2,9,1};

int i = 0;

SelectionSort(num,6);//这里需要将数列元素个数传入。有心者可用sizeof在函数内求得元素个数。

for(i = 0;i 6;i++)

{

printf("%d ",num[i]);

}

return 0;

}

大一C语言使用函数的选择法排序

if(p!=i)

{

q=a[p];

a[p]=a[i];

a[i]=q;

}

这一段放到前面的p=m;后地}后面。

c语言,使用函数的选择法排序

void selectionsort(int a[],int m)

{

int i,j;

int k;

int tmp;

for(i = 0; i  m-1; i++)//控制循环次数,n个数需要n-1次循环

{

k = i;

for(j = i+1; j  m ; j++)

{

if(a[j]  a[k])

k = j;

}

//i不等于k是就证明a[i]不是最小的,

//i等于k时证明a[i]就是本轮比较过程中最小的值

if(i != k)

{

tmp = a[i];

a[i] = a[k];

a[k] = tmp;

}

}

}

c语言 选择法排序

void sa(int array[],int n)

{

int i,j,k,temp;

for(i=0;i10;i++)

{

k=i; //保存i的值,用k来进行循环排序

for(j=i+1;jn;j++) //将第i个元素后面的元素与第i个元素进行比较

if(array[j]array[k]) //如果第k=i个元素后面的元素小于i号元素,交换两个元素的标号, 这样就将最小元素的标号放到最前面

k=j; //交换标号

temp=array[k]; //循环结束后,交换两个标号下的元素的值

array[k]=array[i];

array[i]=temp;

}

}

这个程序实现的是由小到大的排序。第二个循环里面,就是i号元素后面最小的元素对应的标号放到k中,在交换当前元素与k号元素中的值,实现由大到小排序


当前标题:C语言选择排序法函数,C语言用函数排序
分享路径:http://pwwzsj.com/article/phsisi.html