排序算法 快速排序
一、算法介绍 二、算法实现 三、算法改进 3.1 改进:小规模数组使用直接插入排序 3.2 改进:三向切分 3.3 改进:伪尾递归优化 四、补充:非递归写法 五、补充:内置库使用快速排序的原因 快速排序是一种分治策略的排序算法,是由英国计算...
一、算法介绍 二、算法实现 三、算法改进 3.1 改进:小规模数组使用直接插入排序 3.2 改进:三向切分 3.3 改进:伪尾递归优化 四、补充:非递归写法 五、补充:内置库使用快速排序的原因 快速排序是一种分治策略的排序算法,是由英国计算...
一、优先队列 1.1. 最大堆特征 1.2. 上浮操作 1.3. 下沉操作 1.4. 时间复杂度分析 1.5. 最大堆实现 三、普通堆排序 三、自底向上堆排序 堆排序( Heap Sort )由威尔士-加拿大计算机科学家 J. W. J. ...
一、算法介绍 1.1. 自顶向下归并排序 1.2. 自底向上归并排序 二、算法实现 三、算法改进 归并排序是一种分治策略的排序算法。它是一种比较特殊的排序算法,通过递归地先使每个子序列有序,再将两个有序的序列进行合并成一个有序的序列。 归并...
一、算法介绍 二、算法实现 1959 年一个叫 Donald L. Shell (March 1, 1924 – November 2, 2015) 的美国人在 Communications of the ACM 国际计算机学会月刊 发布了...
一、算法介绍 二、算法实现 三、算法改进 选择排序,一般我们指的是简单选择排序,也可以叫直接选择排序,它不像冒泡排序一样相邻地交换元素,而是通过选择最小的元素,每轮迭代只需交换一次。虽然交换次数比冒泡少很多,但效率和冒泡排序一样的糟糕。 选...
一、算法介绍 二、算法实现 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序。就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复。 插入排序属于插入类排序算法。 除了我以外,有些人打扑克时习惯从第二张牌开始...
一、算法介绍 二、算法实现 三、总结 冒泡排序是大多数人学的第一种排序算法,在面试中,也是问的最多的一种,有时候还要求手写排序代码,因为比较简单。 冒泡排序属于交换类的排序算法。 一、算法介绍 现在有一堆乱序的数,比如:5 9 1 6 8 ...