随笔分类 -  数据结构与算法

摘要:希尔排序(Java) 声明:文章参考https://blog.csdn.net/weixin_49561445/article/details/114830602 一、原理 希尔排序是基本插入排序的升级优化版,希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每 阅读全文
posted @ 2021-12-07 00:29 xiayiLL 阅读(61) 评论(0) 推荐(0)
摘要:快速排序(Java) 声明:此文章参考https://www.cnblogs.com/c4isr/p/4603980.html 一、原理(分治法) 先从数列中取出一个数作为基准数。 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 再对左右区间重复第二步,直到各区间只有一个 阅读全文
posted @ 2021-12-07 00:06 xiayiLL 阅读(58) 评论(0) 推荐(0)
摘要:插入排序 (Java) 一、原理 每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止 二、时间复杂度 时间复杂度为O(n)~O(n^2) 三、代码实现(已优化) 1 public static void insertSort(int[] arr){ 2 for(int 阅读全文
posted @ 2021-12-06 00:32 xiayiLL 阅读(31) 评论(0) 推荐(0)
摘要:选择排序(Java) 声明:本文参考https://blog.csdn.net/gisboygogogo/article/details/107554216 一、原理 每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序 二、时间复杂度 时 阅读全文
posted @ 2021-12-06 00:09 xiayiLL 阅读(51) 评论(0) 推荐(0)
摘要:冒泡排序(Java) 声明:本文参考https://www.cnblogs.com/kalton/p/13649798.html 一、原理 比较两个相邻的元素,将值大的元素交换到右边 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重 阅读全文
posted @ 2021-12-05 23:53 xiayiLL 阅读(44) 评论(0) 推荐(0)