上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页
摘要: 先转载下人家总结的宏和普通函数调用的区别:(1)、宏只做简单的字符串替换,函数是参数传递,所以必然有参数类型检查(支持各种类型,而不是只有字符串)。(2)、宏不经计算而直接替换参数,函数调用则是将参数表达式求值再传递给形参。(3)、宏在编译前进行,即先替换再编译。而函数是编译后,在执行时才调用的。宏占编译时间,而函数占执行时间。(4)、宏参数不占空间,因为只做字符串替换,而函数调用时参数传递是变量之间的传递,形参作为局部变量占内存空间。(5)、函数调用需要保留现场,然后转入调用函数执行,执行完毕再返回主调函数,这些耗费在宏中是没有的。使用宏和内联函数都可以节省在函数调用方面的时间和空间开销。二 阅读全文
posted @ 2010-03-04 20:22 liyuxia713 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 摘要: Quicksort是一个很好的比较排序算法,但是其最坏情况运行时间是O(n^2), 还不如Mergesort的O(nlgn), 如何改进Quicksort? 答案是:引进随机化思想。一种方法: 对给定的待排序序列,随机地重排列另一种方法:随机选取pivot给出第二种方法的代码阅读全文幸运草 2010-01-24 14:36 发表评论 阅读全文
posted @ 2010-01-24 14:36 liyuxia713 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 摘要: Order Statistics 顺序统计Select(int* a, int n, int ith): 从给定的n个元素中找出第i个小的元素思想:QuickSort的Partition方法进行分割如果 i = rank(pivot), 则返回a[k]如果 i < rank(pivot), 则从前半部分中找第i个小的元素如果 i > rank(pivot), 则从后半部分中找第i-rank(pivot)个小的元素 最坏运行时间O(n^2)平均运行时间O(nlgn) 阅读全文幸运草 2010-01-21 16:29 发表评论 阅读全文
posted @ 2010-01-21 16:29 liyuxia713 阅读(321) 评论(0) 推荐(0) 编辑
摘要: rand() 可获得伪随机数。但是仅仅这样写的话,同一段代码每次运行程序获得的随机数相同。因为在调用rand()前自动调用了srand(1); 这条语句。 只有当srand()的形参是变化的时每次运行获得的随机数才不同。用什么样的随时变化的参数呢? 用time(NULL), 即srand((unsigned)time(NULL)); rand(); 这样每次运行得到的随机数不同。如何获得某个区间的随机数?---- 如果是区间[0,n), rand()%n 就可以了---- 如果是区间[m,n), rand()%n+m 就可以了 ----如果是区[0,1), rand()/double(RAND 阅读全文
posted @ 2010-01-21 15:37 liyuxia713 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 摘要: 计数排序对a[0],...,a[n-1]进行排序,其中1 <= a[i] <= m 计数排序不是基于比较的排序方法,从而最坏情形下的运行时间也不受比较的排序方法最快O(nlgn)的限制。计数排序的运行时间是O(n+m)阅读全文幸运草 2010-01-18 15:50 发表评论 阅读全文
posted @ 2010-01-18 15:50 liyuxia713 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1/**//*2*堆排序3*O(nlgn)4*/56#include<iostream>7#include<cstdlib>89#defineLEFT(i)(2*i+1)10#defineRIGHT(i)(2*i+2)11#definePARENT(i)((i-1)/2)1213usingnamespacestd;1415//交换两个元素值16voidswap(int&a,int&b);17//输出数组元素18voidprint(int*a,intn);1920//保持堆性质,当左右子树都是堆时,但a[i]可能违反堆性质时,调整成堆21voidMaxHe 阅读全文
posted @ 2010-01-18 15:45 liyuxia713 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 摘要: ★ 对于父类函数(virtual、非virtual),如果子类没有同名函数,则正常继承★ 对于父类函数(virtual、非virtual),如果子类有同名函数,无同型函数,则不能调用父类函数★ 对于父类函数(virtual、非virtual),如果有同型函数:----非virtual函数由指针类型决定调用哪个----virtual函数由指针指向的对象决定调用哪个(运行时决定)阅读全文幸运草 2010-01-08 16:30 发表评论 阅读全文
posted @ 2010-01-08 16:30 liyuxia713 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 类static成员引进:有时特定类的全体对象需要访问一个全局对象。★为什么用static成员而不是全局对象? ---- static对象名字在类作用域中,可以有效避免命名冲突,并且清晰显示程序意图。 ---- 可以实施封装(static成员可以定义为private,而全局对象不可以)★如何调用? ---- class A a;A::static_mem;a.static_mem;★声明和定义 ---- static成员函数在类定义体内部外部定义均可。在类定义体外定义时不加(不可以加)static修饰。 ---- static数据成员必须在类定义体外部定义(正好一次)(在类定义体外声明并定义) 阅读全文
posted @ 2010-01-08 12:22 liyuxia713 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 写了一下自己的答案,不知道正确与否,也有就是没会的,谁有个参考答案,希望不吝赐教~1. 这块石头究竟有多重——有4个小孩看见一块石头正沿着山坡滚下来,便议论开了。 “我看这块石头有17公斤重,”第一个孩子说。 “我说它有26公斤,”第二个孩子不同意地说。“我看它重21公斤”,第三个孩子说。 “你们都说得不对,我看它的正确重量是20公斤,”第四个孩子争着说。 他们四人争得面红耳赤,谁也不服谁。最后他们把石头拿去称了一下,结果谁也没猜准。其中一个人所猜的重量与石头的正确重量相差2公斤,另外两个人所猜的重量与石头的正确重量之差相同。当然,这里所指的差,不考虑正负号,取绝对值。请问这块石头究竟有多重. 阅读全文
posted @ 2009-09-16 08:48 liyuxia713 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 摘要: 阅读全文幸运草 2009-05-10 08:03 发表评论 阅读全文
posted @ 2009-05-10 08:03 liyuxia713 阅读(110) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页