LeetCode-SortingAlgorithm
Free Talk
今天面试的时候,因为第一道算法题没有做出来,面试官特地又给了一道排序算法,我想了想只想到冒泡,而且还没有实现出来。趁着这个机会,今天晚上正好总结一下常用的排序算法。
排序数组
1 | 给你一个整数数组 nums,请你将该数组升序排列。 |
选择排序
1 | class Solution { |
时间复杂度:O(n^2)
空间复杂度:O(1)
执行结果
插入排序
1 | class Solution { |
对链表进行插入排序
1 | /** |
执行结果
理解链表插入
1 | // 因为链表的插入不熟悉,这边自己再写一遍 |
执行结果
归并排序
1 | class Solution { |
辅助数组
1 | class Solution { |
执行结果
从后往前比
1 | class Solution { |
执行结果
快速排序
1 | class Solution { |
执行结果
堆排序
1 | class Solution { |
堆排序参考资料:https://www.cnblogs.com/mtgh/p/11374434.html
- 时间复杂度:O(NlogN),这里 N 是数组的长度;
- 空间复杂度:O(1)。
执行结果
冒泡排序
简单版
1 | class Solution { |
标识位优化
1 | class Solution { |