围绕抽象数据类型(ADT)的几个点:
定义域:数据的取值范围,例如bool型的取值范围是:{true , false}
数据类型/类型:定义域D和D上的一组操作,例如int类型的数据可以进行加减乘除运算。
抽象数据类型:接口 和 实现。
而对于算法设计者:所面临的是海量的数据,所以就需要将这些数据整合起来形成容器,正是数据结构所要阐述的。
而数据结构存在的意义是算法的加速剂,例如:如果我们需要查找元素时,我们将数据都存入到数组这种数据结构里面,然后遍历数组,如果找到了我们所需要元素,返回下标,否则返回一个不存在的位置(-1或者N)。
int data[1000] int LinearSearch(int k , const int data[] , int N) { for(int pos ; pos < N ; ++pos) if(data[pos] == k) return pos; return -1; //return N; }
其实可以看得出来,这段代码的时间复杂度为O(N),而且后期的优化空间极低,而如果我们使用其他的高级数据结构,就可以使时间复杂度大大降低,这也是数据结构所需要研究的内容。
这一节只是起一个引出的作用,关于更多抽象数据类型的说明后续会更新。
Comments NOTHING