在C语言中,如何用函数实现,用选择法对10个数进行排序

2025-03-22 22:43:52
推荐回答(2个)
回答1:

//选择 void sort1(int *a,int n){ for(int i=0;ia[j]) sp(a[i],a[j]);}//冒泡 void sort2(int *a,int n){ for(int i=1;ia[j+1]) sp(a[j],a[j+1]); }//插入 void sort(int* a,int n) { int temp,int item; for (int i=1;i=0&&a[item]>temp) { a[item+1]=a[item]; item--; } a[item+1]=temp; }} //快速排序 void q(int *a,int left,int right){ int i=left; int j=right; int mid=a[(i+j)/2]; while(i<=j) { while((imid)) i++; while((j>left)&&(a[j]left) q(a,left,j); } void sort3(int *a, int n){ q(a,0,n-1); }//双向冒泡 绝对由于单向冒泡 原因很简单如果数组前面或者后面排好那么就很明显表现出差距void sort(int* a,int n) { int left=0,right=n-2,t;do {for (int i=left;i<=right;i++){if (a[i]=left;i--){if(a[i]>a[i]; /////////////////////////////////在这行加入所对应的函数可以验证 for(int i=0;i

回答2:

# include
void sort(int array[])
{
int i,j,k,t;
for (i=0;i<10-1;i++)
{
k=i;
for (j=i+1;j<10;j++)
if (array[j] {
k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
}
main()
{
int a[10],i;
printf("请输入十个数");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("原数组为:");
for (i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
sort(a);
printf("排序后数组为:");
for (i=0;i<10;i++)
printf("%d\t",a[i]);
}