今天有幸上了翁恺老师的课。有很多的收获,其中之一就是递归算法的理解。
感谢栋哥!
先贴代码,在代码中领会精髓。
#include<stdio.h> int findmax(int a[],int begin,int end) { int i; int ret =begin; for(i=begin+1;i<=end;i++) { if(a[i]>a[ret]) ret=i; } return ret; } void sort(int a[],int begin,int end) { int t; if(begin<end) { int maxid=findmax(a,begin,end); t=a[maxid]; a[maxid]=a[end]; a[end]=t; sort(a,begin,end-1); } } int main() { int a[10]; int i,len; len=sizeof(a)/sizeof(a[0]); for(i=0;i<len;i++) scanf("%d",&a[i]); sort(a,0,len-1); for(i=0;i<len;i++) { printf("%d",a[i]); } printf(" "); }