有N个大小不等的自然数(1--N),请将它们由小到大排序。要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
#include<stdio.h> int main() { int a[9]={9,8,2,4,3,5,6,7,1}; int i,tmp; for(i=0;i<9;i++) { while(a[i]!=i+1) { tmp=a[i]; a[i]=a[a[i]-1]; a[tmp-1]=tmp; } } for(i=0;i<9;i++) printf("%d ",a[i]); return 0; }