摘要: 希尔排序,也称递减增量排序算法,是插入排序的一种高速而稳定的改进版本。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规定。算法的具体步骤为:先取一个正整数 d1,所有距离为 d1的倍数的记录看成一组,然后在各组内进行插入排序。然后取 d2( d2< d1),重复1中的操作,进行排序。直到d=1。一般的,取d1=n/2,d2=d1/2,dk=dk-1/2,...直到d=1;已知的最好步长串行是由Sedgewick提出的 阅读全文
posted @ 2013-04-03 22:40 yitianke 阅读(370) 评论(0) 推荐(0)
摘要: 区别C++中对于类来说,对于其中的成员,用点操作符.来获得,而对于一个指向类对象的指针来说,则用箭头操作符->调用该指针所指向对象的成员。当类定义->重载操作符后,则既可以用箭头操作符,也可以用点操作符。重载->操作符重载箭头操作符必须定义为类成员函数。没有显式形参(而且是类成员,唯一隐式形参是this)。->的右操作数不是表达式,而是对应类成员的一个标识符,由编译器处理获取成员工作。重载箭头操作符必须返回指向类类型的指针,或者返回定义了自己的箭头操作符的类类型对象。如果返回类型是指针,则内置箭头操作符可用于该指针,编译器对该指针解引用并从结果对象获取指定成员。如果被指 阅读全文
posted @ 2013-04-03 16:47 yitianke 阅读(1180) 评论(0) 推荐(1)