ADT示例
向量vector容器
template<class ELEM>
class vector
{
private:
ELEM *v[];
int maxLength;
int currenSize;
public:
vector<ELEM> v;
vector<ELEM> v(K);
vector<ELEM> v(k,value);
int size();
}
二维矩阵容器matrix
template<class ELEM>
class matrix
{
typedef vector<ELEM> Mrow;
typedef vector<ELEM> Mmatrix;
private:
Mmatrix amatrix;
int maxLength;
public:
Mmatrix<ELEM> m;
Mmatrix<ELEM> m(k);
Mmatrix<ELEM> m(k,value);
int v.size();
}
算法
算法的渐进分析示例-矩阵求和(matrix_addition)
void matrix_addition(double **M1,double **M2,int k)
{
for (int i=0;i<k;i++)
for(int j=0;j<k;j++)
M1[i][j] = M1[i][j] + M2[i][j];
}
最好、最坏和平均情况——求矩阵M中绝对值最大的元素
double abs_biggest(double **M,int k)
{
double current_big = 0;
for (int i = 0;j<k;j++)
for (int j = 0;i<k;j++){
double temp = fabs(M[i][j]);
if (temp > current_big)
current_big = temp;
}
return current_big;
}