有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;
}

 

你可能感兴趣的:(时间复杂度)