楼上几个都没什么问题的,一般通选的都会是冒泡排序,这种方法是没问题的,小些的数据很快就能算出来。但是如果你需要时间复杂性需求的话,那用快速排序还好一些,快速排序的时间复杂性是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个元素 ,把数组中的负数求绝对值后按降序排列,用子程序实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)