从小到大有序数列
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
?问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
#include
#include
void Print(int *data,int n)
{
int i;
for(i=0;i
printf("%d ",data[i]);
}
printf("\n");
}
int Split(int *data,int pre,int rear)
{
int value=data[pre];
while(pre
while(data[rear]>=value && pre
while(data[pre]
}
data[pre]=value;
return pre;
}
//快速排序
void QuickSort(int *data,int pre,int rear)
{
if(pre
int mid=Split(data,pre,rear);
QuickSort(data,pre,mid-1);
QuickSort(data,mid+1,rear);
}
}
int main()
{
int i;
int n;
int *data;
scanf("%d",&n);
data=(int *)malloc(sizeof(int)*n);
for(i=0;i
scanf("%d",&data[i]);
}
QuickSort(data,0,n-1);
Print(data,n);
return 0;
}
//调用标准函数库中的qsort排序
#include
#include
using namespace std;
int comp(const void *a,const void *b)
{
return *(int *)a - *(int *)b;
}
int main()
{
int i, n,*a;
cin>>n;
a = new int[n];
for(i=0;i
cin>>*(a+i);
}
qsort(a,n,sizeof(a[0]),comp);
for(i=0;i
cout<<*(a+i)<<" ";
}
delete [] a;
return 0;
}