摘要:
1、思路:假定前面的序列已经有序,当前元素插入前面有序的序列。从后往前遍历,比当前元素大的,往后移,为当前元素腾出位置。2、代码: 1 template 2 void InsertSort(vector& vec) 3 { 4 for(int i=1; i0 && target 2 int FindPosition(const vector& vec,int lhs,int rhs,T target) 3 { 4 if(rhs-lhs ==1) 5 { 6 if(target>vec[lhs]) 7 { 8 re... 阅读全文
posted @ 2013-11-14 19:32
Andy Niu
阅读(284)
评论(0)
推荐(0)
摘要:
1、思路:对于当前第一个数,假定它是最小的,遍历后面的数,发现比当前数还小的,进行交换,这样就保证了当前第一个为最小的。2、代码: 1 template 2 void SelectSort(vector& vec) 3 { 4 for(int i=0; i 2 void SelectSort_2(vector& vec) 3 { 4 for(int i=0; i< vec.size();i++) 5 { 6 int index_Min = i; 7 for(int j=i+1;j < vec.size();j++) 8 ... 阅读全文
posted @ 2013-11-14 19:27
Andy Niu
阅读(279)
评论(0)
推荐(0)
摘要:
1、思路:内层循环,比较当前元素与相邻的下一个元素,顺序不对,进行交换,这样就把最大的数沉到底部。外层循环,对于每次剩余的数,把最大的沉到底部。2、源码: 1 template 2 void BubbleSort(vector& vec) 3 { 4 for(int i=0; ivec[j+1]) 9 {10 swap(vec,j,j+1);11 }12 }13 }14 } 阅读全文
posted @ 2013-11-14 19:19
Andy Niu
阅读(235)
评论(0)
推荐(0)
摘要:
1、在C++中,Animal a = Person(); 这样写是不行的,因为a的内容不能使用Person的内容来填充。2、在Python中,变量不需要声明,而且可以赋任何值。Python是如何做到的? Python的设计理念是:变量和实体分离,变量可以认为是一个指针,指向某个实体,而且可以指向任何实体。这个变量只能指向实体,不能包含实体的内容。对变量赋值,不是修改指向的实体,而是使变量指向另一个实体。 也就是说,变量没有办法修改指向的实体,修改变量只不过是让他指向另一个实体。 变量可以间接的修改实体,比如a,b指向同一个容器,a修改容器的第一个元素,b容器的第一个元素也发生变化。但这本... 阅读全文
posted @ 2013-11-14 17:13
Andy Niu
阅读(789)
评论(0)
推荐(0)
摘要:
1、如果手里有一把锤子,看啥都像钉子。2、KISS :Keep It Simple Stupid3、DRY:Donot Repeat Yourself4、Make Clean Code Fast 比 Make Fast Code Clean重要,并且简单。5、避免垃圾进,垃圾出。正确的做法是:垃圾不让进,或者垃圾进给出错误提示。6、简单就是美,奥卡姆剃刀原理,没有必要,勿增实体。7、好的代码尽量做到自说明的,不需要太多的注释。8、一切软件的本质是增删改查,和数据可视化。这里的数据是结构化的数据,不同的结构把无差别的字节组织称千差万别的对象,千差万别的对象相互协作构成系统。 阅读全文
posted @ 2013-11-14 14:11
Andy Niu
阅读(241)
评论(0)
推荐(1)
摘要:
1、考虑下面的情况:有个Person类,内部有个age字段。正常情况下,定义和赋值为:Person p = Person(8);p = Person(9);但是有个家伙很懒,他想这么写:Person p = 8;p =9;这样写也是可以的,因为编译器知道你的意图,运行的时候会进行一次隐式类型转换,中间适配一个临时对象。这就是隐式类型转换,但这样写不好,因为语义不通。要避免这种情况,使用explicit,这样编译器就会曝出错误。2、现在在考虑下面的需求:判断p的年龄是否大于5,正常的写法是:if(p.GetAge()>5){....}但是,上面的家伙还是很懒,想直接这样写:if(p> 阅读全文
posted @ 2013-11-14 14:10
Andy Niu
阅读(849)
评论(0)
推荐(0)
浙公网安备 33010602011771号