摘要: 1. 函数原型(c++ reference) void * memcpy ( void * destination, const void * source, size_t num );不能解决某些覆盖问题。 char * strcpy ( char * destination, const char * source ); 不能解决某些覆盖问题,根据'\0'表示字符串复制终止。void * memmove ( void * destination, const void * source, size_t num ); 能够解决所有覆盖问题。 void * memset ( v 阅读全文
posted @ 2011-06-16 15:50 xiaodongrush 阅读(777) 评论(3) 推荐(0) 编辑
摘要: 1. 简述1.1 一般方法 计数排序的排序对象一般是整数。 假设待排序数组为 int array[], 数组长度为n。第一步:开辟临时数组,int tmp[],数组长度为n。int count,数组长度为10。 第二步:遍历数组,得到最大数值的位数d,即后面需要d次排序。 第三步:根据个位进行排序,根据十位进行排序,···,根据d位进行排序。 对于根据i位进行排序,其中1<=i<=d 首先,统计array的所有元素在d位上的出现次数,保存到int count[]中。 然后,根据count[]计算得到,array应该在tmp中的出现的最后的位置,即cou 阅读全文
posted @ 2011-06-16 11:12 xiaodongrush 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 1. 简述 计数排序的排序对象一般是整数。 假设待排序数组为 int array[], 数组长度为n。 第一步,遍历数组,得到数组的最大值max和最小值min。 (n) 第二步,开辟一个新数组,int count[],数组长度为max-min+1,其中每个元素初始化为0。 第三步,遍历array数组,在count数组内统计array中每个元素出现的个数。(n) 第四步,根据count数组,填充array数组。(n+k)2.复杂度 假设array中的数值范围是k,其中k=max-min+1,那么时间复杂度是O(n+k),实际上这个复杂度算的是第四步的时间复杂度,四个步骤中,遍历元素的次数应该是n 阅读全文
posted @ 2011-06-16 10:06 xiaodongrush 阅读(358) 评论(1) 推荐(0) 编辑