![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
排序算法 Sorting
文章平均质量分 58
Sorting Algorithm
马达加斯加D
这个作者很懒,什么都没留下…
展开
-
冒泡排序 Bubble Sort
冒泡排序 Bubble Sort基本概念冒泡排序的实现时间复杂度 和 空间复杂度冒泡排序优化一基本概念不断比较相邻的两个数,如果大于右边的数就交换(swap),直到末尾,这样最后一个元素就是最大的数重复n次,排序完成Example:4 9 3 14 8 0Loop 1: 4 3 9 14 8 0 —> 4 3 9 8 14 0 —> 4 3 9 8 0 14Loop 2: 3 4 9 8 0 14 —> 3 4 8 9 0 14 —> 3 4原创 2021-01-22 23:09:17 · 200 阅读 · 3 评论 -
插入排序 Insertion Sort
插入排序 Insertion Sort基本概念插入排序的实现时间复杂度和空间复杂度基本概念从 index 1开始,不断将元素插入右边已经排好序的数组适用于少量元素Example: 9 2 1 4 3Step 1: 9 ———2 1 4 3将 2 和 9 比较,交换Step 2: 2 9 ------ 1 4 3将 1 和 9 比较,交换将 1 和 2 比较,交换Step 3: 1 2 9 ---- 4 3将4 和9比较,交换将4 和2比较,不交换St原创 2021-01-22 23:48:25 · 97 阅读 · 0 评论 -
快速排序 quickSort 和 快速选择 quickSelect
快速排序 quickSort基本概念双指针法时间复杂度稳定性代码实现Example1Example2Example 3基本概念双指针法在数组中选一个pivot,一般随机选取或者选中间的数设置两个指针,一个在最左边一个在最右边whie (left <= right) {左边的指针遇到第一个大于或等于pivot的数停下来(从最左边的数开始,包括指针起始的位置)右边指针遇到第一个小于或等于pivot的数停下来 (从最右边的数开始,包括指针起始的位置)如果 left<= right原创 2021-01-15 00:50:35 · 741 阅读 · 0 评论 -
归并排序 mergeSort
归并排序 mergeSort基本概念归并排序的实现时间复杂度 和 空间复杂度稳定性基本概念将一个数组不断的二分,直到不能分为止然后将不断对比合并归并排序适用于链表,不需要额外的储存空间。但是对于数组,需要额外的储存空间归并排序的实现/*Merge Sort:1. Time complexity: worst case: nlogn best case: nlogn averge: nlogn2. This is a stable sorting 3原创 2021-01-15 01:33:05 · 184 阅读 · 0 评论 -
堆排序 HeapSort
堆排序https://blog.csdn.net/weixin_38803409/article/details/112464732原创 2021-01-24 01:26:25 · 111 阅读 · 0 评论 -
拓扑排序 topologicalSort
拓扑排序 topologicalSort背景知识 ---- 图 (Graph)顶点和边 (vertex and edge)无向图 (Undirected Graph)有向图 (Directed Graph)有向图的degree图中的环基本概念什么是拓扑排序拓扑排序的代码思路 --- 利用广度优先搜索(BFS)拓扑排序的实现时间复杂度拓扑排序的相关问题判断是否存在拓扑排序判断是否仅存一个拓扑排序如何求按最小或最大顺序排列拓扑排序Leetcode Example:背景知识 ---- 图 (Graph)顶原创 2021-01-24 18:03:25 · 1608 阅读 · 1 评论