用指向指针的方法对N个整数排序并输出

2025-03-23 22:51:46
推荐回答(3个)
回答1:

选择
#include "stdio.h"
void sort(int x[],int n)
{
int t,i,j,k;
for(i=0;i {
k=0;
for(j=0;j if(x[k] k=j+1;
t=x[k];
x[k]=x[n-1-i];
x[n-1-i]=t;
}
}
void main()
{
int a[10],i,*p;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d ",*p);
p++;
}
}
冒泡
#include "stdio.h"
void sort(int x[],int n)
{
int i,j,p;
for(i=0;i for(i=0;i for(j=0;j {
if(x[j] {
p=x[j];
x[j]=x[j+1];
x[j+1]=p;
}
}
}
void main()
{
int a[10],i,*p;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d ",*p);
p++;
}
}

回答2:

找N个学生,每人分配一个数,然后让他们自己去按大小排队去,最快的并行算法!(也可能是最慢的,比串行算法还要慢!)
如果你还想再快一点,可以在操场上画上若干个格子,规定每个格子只能站哪个数值区间内的数。
或者像拍卖一样,你喊第一名出列,让他们自己竞争去,依次类推。
我这样跟你开玩笑,是因为你的题目描述存在很严重的问题,估计是你转述谬传,要不就是你在胡思乱想。
既然是对整数排序,何必用指针呢;就算想用指针也不必是二级指针啊!

回答3:

你在sort里面有一点小错误,估计是粗心了。改了就能够正确的排序了。
void
sort(int
**p,int
n)
{int
i,j,*t;
for(i=0;i{for(j=i+1;j{if(**(p+i)>**(p+j))
{t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
//
这儿是*(p+j)
,不是*(p+i)呢,
}
}
}
}