一、定义
数据结构是一组数据的存储结构,常用的10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树。
算法是操作数据的一组方法,常用的10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,也就是空间复杂度和时间复杂度都尽可能小。
二、复杂度
1、求下面代码的复杂度:
int i = 0;
while (i <= n) i = i * 2;
假设代码循环了k次后跳出,则2^k = n,所以k = log_2(n),时间复杂度为O(log_2(n))