(转)关于一道1到N自然数排序的华为面试题
2010-11-23 09:38
459 查看
有N个大小不等的自然数(1--N),请将它们由小到大排序。
要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
原作者地址http://blog.csdn.net/zoudaokou2006/archive/2010/09/26/5906363.aspx#
代码是正确的,看来算法方面确实还是要加强。
要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
#include <stdio.h> #include <stdlib.h> void sort(int arr[], int n) { int t; for (int i = 0; i < n; i++) { while (arr[i] != i+1) { printf("===== arr[i]=%d, i=%d/n", arr[i], i); t = arr[arr[i]-1]; arr[arr[i]-1] = arr[i]; arr[i] = t; for (int j = 0; j < 10; j++) { printf("%d, ", arr[j]); } printf("/n"); } } } int main(void) { int arr[10] = {10, 6, 3, 4, 2, 5, 9, 8, 1, 7}; sort(arr, 10); for (int i = 0; i < 10; i++) { printf("%d, ", arr[i]); } printf("/n"); system("pause"); return 0; }
原作者地址http://blog.csdn.net/zoudaokou2006/archive/2010/09/26/5906363.aspx#
代码是正确的,看来算法方面确实还是要加强。
相关文章推荐
- 也谈关于一道1到N自然数排序的华为面试题
- 关于一道1到N自然数排序的华为面试题
- 关于一道1到N自然数排序的华为面试题
- 一道华为面试题,关于程序优化的
- 关于华为一道面试题 ( ++a )和( a++ )
- 华为面试题——一道关于指针方面的编程题(C/C++)
- 简单一道排序题,考倒多少读书人!——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!
- 简单一道排序题,考倒多少读书人!——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!
- 一道关于排序的面试题
- Android(java)学习笔记188:关于构造代码块,构造函数的一道面试题(华为面试题)
- 华为面试题——一道关于指针方面的编程题(C/C++)
- 关于华为一道面试题 ( ++a )和( a++ ) .
- 华为面试题——一道关于指针方面的编程题(C/C++)
- 关于华为一道面试题 ( ++a )和( a++ )
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 关于一道JS面试题的思考
- 一道关于排序算法的java面试题
- 一道关于:ArrayList、Vector、LinkedList的存储性能和特性 的面试题
- 关于正则表达式的一道面试题
- 一道关于实例化顺序的C#面试题