c语言数组排序函数 c语言数组排序问题

C语言中通过函数调用对一维数组进行排序

#include stdio.h

创新互联主营南丰网站建设的网络公司,主营网站建设方案,手机APP定制开发,南丰h5小程序制作搭建,南丰网站营销推广欢迎南丰等地区企业咨询

#include stdlib.h

#include time.h

#define MAXlen 100

void select_sort(int *x, int n) { //选择排序

int i, j, min;

int t;

for (i = 0; i n - 1; i++) { // 要选择的次数:0~n-2共n-1次

min = i; // 假设当前下标为i的数最小,比较后再调整

for (j = i + 1; j n; j++) { //循环找出最小的数的下标是哪个

if (*(x + j) *(x + min)) {

min = j; // 如果后面的数比前面的小,则记下它的下标

}

}

if (min != i) { // 如果min在循环中改变了,就需要交换数据

t = *(x + i);

*(x + i) = *(x + min);

*(x + min) = t;

}

}

}

int main() {

int i;

int iArr[MAXlen];

srand((unsigned int)time(NULL));

printf("\n排序前:\n");

for(i = 0 ; i MAXlen ; i++) {

iArr[i] = (unsigned int)rand() % 1000;

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n");

select_sort(iArr,MAXlen);

printf("\n排序后:\n");

for(i = 0 ; i MAXlen ; i++) {

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n\n");

return 0;

}

C语言作业:编写程序实现整型数组的排序

#includestdio.h

#includestdlib.h

#define shengxu 0

void RandonArray(int a[],int n)

{

int i;

srand(time(NULL));

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

{

a[i]=rand();

}

}

void SortArray(int a[],int n)

{

int i,j,t;

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

{

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

{

if(shengxu)

{

if(a[j]a[j+1])

{

t=a[j+1];

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

a[j]=t;

}

}

else

{

if(a[j]a[j+1])

{

t=a[j+1];

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

a[j]=t;

}

}

}

}

}

void OutputArray(int a[],int n)

{

int i;

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

{

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

}

}

int main()

{

int i,n,*a;

char msg[]={-56,-25,-71,-5,-78,-55,-60,-55,-93,-84,-57,-21,-72,-8,-50,

-46,50,48,48,-78,-58,-72,-69,-93,-95,0};

printf("%s\n\n",msg);

printf("请输入要随机产生的数组的元素个数:");

scanf("%d",n);

a=(int*)calloc(n,sizeof(int));

RandonArray(a,n);

printf("%s排序前数组各元素的值是:\n",shengxu ? "升序" : "降序");

OutputArray(a,n);

SortArray(a,n);

printf("\n%s排序后数组各元素的值是:\n",shengxu ? "升序" : "降序");

OutputArray(a,n);

free(a);

printf("\n");

system("PAUSE");

return EXIT_SUCCESS;

}

c语言运用sort 排序函数,需要的头文件是什么?

sort不属于C语言的标准函数,所以也没有相应的头文件,但是可以自定义。

sort 函数为将整型数组从小到大排序。

voidsort(int*a,intl)//a为数组地址,l为数组长度。

{

inti,j;

intv;

//排序主体

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

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

{

if(a[i]a[j])//如前面的比后面的大,则交换。

{

v=a[i];

a[i]=a[j];

a[j]=v;

}

}}

扩展资料

c语言自有的qsort函数

#includestdio.h

#includestdlib.h

intcomp(constvoid*a,constvoid*b)//用来做比较的函数。

{

return*(int*)a-*(int*)b;

}

intmain()

{

inta[10]={2,4,1,5,5,3,7,4,1,5};//乱序的数组。

inti;

qsort(a,n,sizeof(int),comp);//调用qsort排序

for(i=0;i10;i++)//输出排序后的数组

{

printf("%d\t",array[i]);

}

return0;

}

编写函数,使用选择排序法对数组进行排序(用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语言数组排序函数 c语言数组排序问题
标题URL:http://scyanting.com/article/dojipej.html