数据结构和算法浅谈
一、数组与简单排序:
首先要明确算法的时间复杂度:O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2ⁿ)<O(n!)
如果有不明白的可以参照这篇博客:https://blog.csdn.net/itachi85/article/details/54882603
1、冒泡排序: 两两比较,小的往前/往后放,因此很容易得出bubble sort的时间复杂度是O(n²)
2、选择排序:两两比较,小的序号往前/往后放,全部比较完了,做一次交换。因此可以看出select sort的时间复杂度也是O(n²),只是交换次数,比冒泡排序少了很多。
3、插入排序:
4、归并排序:
5、希尔排序:
6、快速排序:
二、栈与队列
1、栈:先进后出
2、队列:先进先出
三、链表
1、单向链表
2、双向链表
3、有序链表
4、迭代器
四、哈希表
五、堆
1、基本堆
2、二分搜索树
3、红黑树
六、图
1、基础图
2、有权图