
十大排序算法思路汇总
在面试的过程中经常会遇到手写排序算法,所以本文就简单总结一下。不对算法的细节做介绍,只做一个概括性的描述。

交换类:通过元素之间的两两交换来实现排序
插入类:将数分为2部分,依次将无序的数插入到有序的数列中
选择类:从待排序数列中找到最小值或者最大值元素,放到已拍好序的序列后面
计数排序和基数排序可以认为是桶排序的一种特殊实现,都不是通过元素之间的比较来实现排序的
冒泡排序
冒泡排序,从头开始,依次比较数组中相邻的2个元素,如果后面的数比前面的数大,则交换2个数,否则不交换。每进行一轮比较,都会把数组中最大的元素放到最后面。
如下图,一轮比较的过程如下

当数组中有n个元素时,只需要进行n轮比较,则整个数组就是有序的
本文概述十大排序算法,包括冒泡、快速、插入、选择、堆、归并、计数、基数、桶和希尔排序。讨论了它们的基本原理和应用,如快速排序用于解决Top K问题,而计数排序适用于元素跨度较小的数组。同时,文章提到了堆排序的插入和删除节点的过程,并指出面试中常问的排序算法应用。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



