有
N
个大小不等的自然数(
1--N
),请将它们由小到大排序
要求程序算法:时间复杂度为 O(n) ,空间复杂度为 O(1) 。
要求程序算法:时间复杂度为 O(n) ,空间复杂度为 O(1) 。
void sort(int e[], int n)
{
int i;
int t; /*临时变量:空间复杂度O(1)*/
for (i=1; i<n+1; i++) /*时间复杂度O(n)*/
{
if(e[i]<>i)
{
t = e[e[i]]; /*下标为e[i]的元素,排序后其值就是e[i]*/
e[e[i]] = e[i];
e[i] = t;
}
}
}