C语言数据结构排序

来源:百度知道 编辑:UC知道 时间:2024/06/06 07:37:51
对于对于输入的数字按从小到大和从大到小两种顺序进行排序,并显示中间排序过程。
[提示] 可以采用快速排序方法进行数字的两种排序。

这个问题简单,楼主的意思就是显示每一步执行后的中间结果,那只要加几个输出语句就可以了,过程很简单的,为简化起见用最常用的选择排序。程序在wn-tc和Dev-c++下调试通过。
#include<stdio.h>
#include<conio.h>
#define MAX 50
main()
{
int i,j,k,n,a[MAX],b[MAX];
printf("Please input the number of digits:");
scanf("%d",&n);
printf("Please input the digits one by one:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("The array input are:\n");
for(i=0;i<n;i++)
{printf("%4d",a[i]); b[i]=a[i];}/* b[]是a[]的副本,保存原始a[]的内容 */
printf("\n\n");
printf("The sequence in turn are:\n");
for(i=0;i<n-1;i++) /* 选择排序,从小到大排序 */
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
for(k=0;k<n;k++)
printf("%4d",a[k]);
printf("\n");
}
printf("The array after sort are:\n&q