<分区>
我尝试实现选择排序的递归形式。但是显示为“段错误”的错误。错误在哪里?递归算法通常会遇到哪些错误?
#include <stdio.h>
void ssort(int[],int,int);
void prints(int[],int);
void sorting(int[],int,int);
int a[]= {5,6,3,1,2,4};
int main()
{
ssort(a,0,6);
prints(a,6);
return 0;
}
void ssort(int a[],int s,int e)
{
int min=a[s];
int ch,p,j;
for(j=s+1; j<e; j++)
{
if(min>a[j])
{
min=a[j];
ch=j;
}
}
sorting(a,j,ch);
if(s+1<e)
{
ssort(a,s+1,e);
}
}
void prints(int a[],int n)
{
int i;
for(i=0; i<n; i++)
printf("%d",a[i]);
}
void sorting(int a[],int j,int ch)
{
int p=a[j];
a[j]=a[ch];
a[ch]=p;
}