2011年12月2日
摘要: 直接插入排序的基本方法:每步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。插入排序(insert sorting)思想:当插入第i个元素时,前面的v[0],v[1],v[2]......v[i-1],已经排好序了.这时用v[i]的插入码与v[i-1],v[i-2],......排序码进行比较,找到插入的位置即插入v[i],原来位置上的元素从后向前依次后移。时间复杂度: 平均比较次数O(n2),平均移动次数O(n2).直接插入排序是一种稳定的排序。元素大部分有序时效率会更高,这时比较次数和移动次数都会减少。参考代码: void Sort 阅读全文
posted @ 2011-12-02 13:44 Gavin Dai 阅读(7305) 评论(0) 推荐(0) 编辑
摘要: 先来个区别说明:赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一个新的对象,并且其初值来源于另一个已存在的对象。编译器会区别这两种情 况,赋值的时候调用重载的赋值运算符,初始化的时候调用拷贝构造函数。如果类中没有拷贝构造函数,则编译器会提供一个默认的。这个默认的拷贝构造函数只是 简单地复制类中的每个成员。下面看例子。 c++中初始化和赋值操作差别是很大的。 对于基本数据类型差别不大: 比如: inta=12;//initialization,copy0X000Ctoa a=12;//assignment,copy0X000Ctoa 但是对用户自定义的数据类型比如String初始化和赋 阅读全文
posted @ 2011-12-02 10:56 Gavin Dai 阅读(496) 评论(0) 推荐(0) 编辑