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 {  |