Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81196
  • 博文数量: 42
  • 博客积分: 687
  • 博客等级: 上士
  • 技术积分: 425
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-01 15:39
文章分类

全部博文(42)

文章存档

2011年(12)

2010年(30)

分类:

2010-09-15 08:54:13

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

上一篇:正则表达式 RE字符4

下一篇:sed(1)

给主人留下些什么吧!~~