189 8069 5689

自定义函数选择排序C语言,使用函数的选择法排序 c语言

编写函数,使用选择排序法对数组进行排序(用C语言)

#include stdio.h

成都创新互联公司专注于方山企业网站建设,成都响应式网站建设,商城网站建设。方山网站建设公司,为方山等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

#include stdlib.h

#include time.h

int main(void)

{

int a[10],i,j,tmp,b;

srand(time(NULL));

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

a[i]=rand()%100;

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

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

printf("\n");

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

{

tmp=i;

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

 {

if(a[tmp]a[j])

tmp=j;

 }

if(i!=tmp)

{

b=a[tmp];

a[tmp]=a[i];

a[i]=b;

}

}

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

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

printf("\n");

return 0;

}

随机产生数组中的元素, 更合理一些。 百科中有各种版本。

C语言,编写一个函数,函数是用选择排序法将数组排序

#includestdio.h

void px(int a[])

{

int i,temp,j;

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

{

for(j=i;j10;j++)

{

if(a[i]=a[j])

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

}

void main()

{

int i,a[10];

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

{

printf("成绩:");

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

}

px(a);

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

{

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

printf("\n");

}

}

你的错误有点多,px(10)该改成px(a),还有for语句少打了括号,还有for语句里面的i和p的初值都应该为0,而你的是1,编程序的时候要注意代码的格式 排版 不然很难找错的 就像你的for语句少打了括号一样 自己写完了都不容易看出来

还有你那px函数里面的变量声明了太多,没必要 代码看起来要简单 可读性才强

我帮你把没必要的删了 看起来更舒服

C语言,输入一组数进行排序,由大到小排列,用自定义函数实现

给你一个直接插入排序

#include "stdio.h"

void InsertSort(int a[], int left, int right) {//对数组a从下标为left到right区域进行直接插入排序

int i, j, tmp;

for(i = left + 1; i = right; i++) {

for(j = i - 1, tmp = a[i]; j = left tmp a[j]; j++)

a[j + 1] = a[j];

a[j + 1] = tmp;

}

}

void main( ) {

int i, n, a[100];

scanf("%d", n);

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

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

InsertSort(a, 0, n - 1);

printf("\n");

for(i = 0; i n; i++) printf("%d\t", a[i]);

}

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语言编程创建自定义函数sort(),sort函数中实现选择法升序排序,主函数输出排序后的数组元素

#include stdio.h

//选择排序算法,升序

void sort(int *arr,int n)

{

int i,j,k;

int tmp;

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

{

k=i;  //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素

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

{

if(arr[k]  arr[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k

k=j;

}

//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置

if(k != i)

{

tmp=arr[k];

arr[k]=arr[i];

arr[i]=tmp;

}

}

}

int main()

{

int a[10]={ -5,-9,-8,3,9,2,-28,101,-395,0};

int i;

sort(a,10);

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

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

printf("\n");

return 0;

}

//运行结果

F:\c_worka.exe

-395 -28 -9 -8 -5 0 2 3 9 101


分享标题:自定义函数选择排序C语言,使用函数的选择法排序 c语言
转载源于:http://cdxtjz.com/article/phiiii.html

其他资讯