八大排序算法
八大排序算法为最常见最经典的排序算法。要能达到手撕算法的地步。
Java大数据运动猿
努力提升自己,记录学习过程。巩固自己,帮助他人!
展开
-
常用的排序/查找算法的时间复杂度和空间复杂度
常用的排序/查找算法的时间复杂度和空间复杂度原创 2022-10-20 12:42:50 · 2229 阅读 · 0 评论 -
基数排序(常见经典排序算法)
基本思路:先找出数组中最大的数,确定好位数来确定需要排序多少次。然后从个位开始进行归类,个位数一样的放在同一个桶里(桶的排序为0-9依次排序),然后按从左到右,从底到上的顺序取出。个位-十位-百位......依次类推,最终排序完成。......原创 2022-06-07 12:47:59 · 530 阅读 · 0 评论 -
归并排序(常见经典排序算法)
步骤:1.将序列中待排序数字分为若干组,每个数字分为一组 2.将若干个组两两合并,保证合并后的组是有序的 3.重复第二步操作直到只剩下一组,排序完成基本思路:归并排序,先将数组进行拆分,每次拆成两份,然后继续拆分直到一组有两个元素为止,然后再进行两两整合排序,重复两两整合排序直至数组元素排序完成。平均时间复杂度:O()两组两组整合过程如下图所示:import java.util.Arra......原创 2022-05-27 16:27:32 · 2135 阅读 · 0 评论 -
希尔排序(常见经典排序算法)
一、原理:希尔排序又叫缩小增量排序,也是一种插入排序方法(通常快于直接插入法),具体做法是将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序;二、步骤:1.先选定一个小于N的整数gap作为第一增量,然后将所有距离为gap的元素分在同一组,并对每一组的元素进行直接插入排序。然后再取一个比第一增量小的整数作为第二增量,重复上述操作...2.当增量的大小减到1时,就相当于整个序列被分到一组,进行一次直接插入排序,排序完成。对于增量的选定无一定论,但最后一个增量必须等于1,也就是....原创 2022-05-26 00:31:09 · 1277 阅读 · 0 评论 -
插入排序(常见经典排序算法)
基本思路:从第二个元素开始进行排序,第二个元素与前面的第一个元素进行比较,如果大就保持不动,如果小于第一个元素就往前移。 然后第三个元素与前面已经排序好的元素(前两个)从右到左(从大到小)依次进行比较,直到被比较的数小于或等于第三个元素,然后插入到这个元素的后面。 重复上面的过程,直到最后一个元素比较完成,一共进行了n-1趟。平均时间复杂度:O()import java.util.Arrays;public class InsertSort { public st...原创 2022-05-25 20:19:33 · 177 阅读 · 0 评论 -
选择排序(常见经典排序算法)
选择排序算法,将最小值(或最大值)依次选出从而达到排序的目的。原创 2022-05-25 13:11:49 · 435 阅读 · 0 评论 -
堆排序算法
基本思路:将所有元素构成一个堆的形式,然后比较每一个二叉树,将最大的或最小的与根节点元素互换位置,最后将最顶根节点取出,再从左到右、从下到上的方式将尾节点放到最顶根节点上,再重复上述操作进行排序取出最大或最小元素,以此类推,直到所有元素取出。......原创 2022-05-24 20:34:58 · 210 阅读 · 0 评论 -
快速排序算法
思路:1.现在数组元素中选出一个基准值(pivot)(比较值) 2.将数组中大于基准值(pivot)的元素统一移到基准值右边 将数组中小于基准值(pivot)的元素统一移到基准值左边 3.用递归的方式分别对基准值(pivot)左右两边的子序列重复前两步操作,完成快速排序1.main方法调用排序算法对数组进行排序public class QuickSort { private static int count.........原创 2022-05-24 11:29:48 · 413 阅读 · 0 评论 -
冒泡排序算法
一个数组中重复遍历数组,两两相邻元素依次进行比较,如果前一个元素大于后一个元素,就交换位置,直到数组元素由小到大排序。原创 2022-05-22 15:46:05 · 247 阅读 · 0 评论