C语言一题 array排序

C语言一题 array排序,第1张

楼上几个都没什么问题的,一般通选的都会是冒泡排序,这种方法是没问题的,小些的数据很快就能算出来。但是如果你需要时间复杂性需求的话,那用快速排序还好一些,快速排序的时间复杂性是nlogn

我贴个很早以前的写的快速排序算法,不过是C++的

#include<iostreamh>

void swap(int &a,int i,int j){

int t=a[i];

a[i]=a[j];

a[j]=t;

};

int partition(int a,int p,int r){

int i=p;

int j=r+1;

int x=a[p];

while(true){

while(a[++i]<x);

while(a[--j]>x);

if(i>=j)break;

swap(a,i,j);

}

a[p]=a[j];

a[j]=x;

return j;

};

void qSort(int&a,int p,int r){

if(p<r){

int q=partition(a,p,r);

qSort(a,p,q-1);

qSort(a,q+1,r);

}

}

void main(){

int n;

cout<<"input the number of the array:"<<endl;

cin>>n;

cout<<"input datas of the array:"<<endl;

int a=new int[n];

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

cin>>a[i];

cout<<endl;

qSort(a,0,n-1);

for(int j=0;j<n;j++)

cout<<a[j]<<" ";

cout<<endl;

}

第(1)题:

#include <stdioh>

void main(){

int i,a[18];

for(i=17;i>9;i--)

a[i]=i+1;

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

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

for(i=17;i>=0;i--)

{

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

if((18-i)%5==0)

printf("\n");

}

}

第(2)题:

#include <stdioh>

void arrayadd(int a[]){

int i;

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

a[i]+=5;

}

void main(){

int i,a[20];

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

{

a[i]=i+1;

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

}

printf("\n");

arrayadd(a);

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

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

}

以前回答过:

>

以上就是关于C语言一题 array排序全部的内容,包括:C语言一题 array排序、C语言编程,关于数组的应用、汇编语言:数据段中,字数组ARRAY有N个元素 ,把数组中的负数求绝对值后按降序排列,用子程序实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10115117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存