经典排序算法--java实现
经典排序算法--java实现 概述 算法的性能指标 时间复杂度 空间复杂度 稳定性 简单的桶排序 原理分析 代码实现 性能分析 经典的冒泡排序 原理分析 代码实现 性能分析 性能最好的快速排序 原理分析 代码实现 性能分析 换一种思路—插入排序 原理分析 代码实现 性能分析 插入排序的优化版—shell排序 原理分析 代码实现 性能分析 概述 排序算法是计算机算法里的基础概念,也是很多大厂面试的必考内容。不管你是应届毕业的小鲜肉还是浸淫技术多年的老司机,都免不了会和排序打交道。正因为大部分小伙伴平日的学习和工作中直接接触算法的几率并不大,所以时间久了以后难免生疏。正因为忘的差不多了,所以有必要把一些经典排序算法的思想和实现思路再温习一下。所谓温故而知新,总会有新的收获。 本文涉及的主要知识点: 算法的性能指标 简单的桶排序 经典的冒泡排序 性能最好的快速排序 换一种思路—插入排序 插入排序的优化版—shell排序 算法的性能指标 时间复杂度 时间复杂度是一个函数,使用O表示,一般情况下,时间复杂度由高到低的顺序是O(n 2 )>O(nlogn)>O(n)>O(logn)>O(1)。 一般如果一种算法的时间复杂度高于O(n2),那么就需要考虑是否可以寻找更优化的方案,在代码层面,一般是以循环的嵌套层次来辨别算法的时间复杂度。 比如两层循环嵌套,那么每层循环都需要执行n次,一共是n 2