【算法/数据结构】
文章平均质量分 78
yangywyangyw
认真,勤奋,脚踏实地!
展开
-
自己封装的顺序表
//list.h #define ElemType int class OrderList { ElemType *elem; //基地址 int length; //线性表长度 int listsize; //线性表当前大小 public: OrderList(void); OrderList(int init_length); ~OrderList(void); void DestoryList(void); void ClearList(void原创 2010-09-17 20:46:00 · 692 阅读 · 0 评论 -
自己封装的泛型链表
<br />链表抽象基类,估计以后封装双向链表时我还会用到它。<br /> <br />list_base.h如下:<br /> <br /> #ifndef ABLIST_H #define ABLIST_H #include "ListNode.h" template<class type> class ablist { public: virtual int insert(type value)=0; //将value 插入到链表表头 virtual int i原创 2010-09-20 05:02:00 · 675 阅读 · 0 评论 -
复习下几种插入排序
一般插入排序(包括直接插入排序和直接插入排序),时间复杂度为O(N平方),辅助空间大小为O(1);希尔排序也是一种插入排序,但希尔排序由于其时间是所取“增量”序列的函数,这涉及到一些数学上尚未解决的难题,所以,到目前为止,没有人能求出一个较好的增量序列,但大量研究已得出一些局部结论,如有人在大量实验基础上推出:当n在某个范围内,希尔排序所需比较和移动次数约为n的1.3次方,而能肯定的一点是,在增量序列取的不太差的前提下,增量排序的效率肯定高于一般插入排序。增量序列可以有各种取法,但应注意的是:应使增量序列中原创 2010-11-25 00:10:00 · 798 阅读 · 0 评论 -
复习——两种基于“交换”的排序方式
基于“交换”的排序方法中,最常见的就是我们平时所熟悉的“冒泡排序”,其时间复杂度为O(n平方);另外一种基于“交换”的排序方法即:快速排序,它是一种对冒泡排序的改进,其平均时间复杂度为O(nlogn);通常,快速排序被认为是所有同等数量级的排序方法中,平均性能最好的。下面代码是对1——100的递增数列分别利用冒泡和快排方法进行从大到小的排序。#include using namespace std; const int MAX_SIZE=101; void initial_array(in原创 2010-11-25 16:00:00 · 636 阅读 · 0 评论