数据结构排序算法
陆康haunting
兴趣使然
展开
-
2021-10-12
快速排序省略概念,讲思路。1、首先对于未排序数组,将数组最后一个元素作为轴(pivot)和其它数组元素比较。从左开始向右边开始找到第一个比轴还要大的数组元素,然后记录其下标;然后再从右往左找到第一比轴还要小的数组元素并记录其下标,交换这两个数的位置。然后循环进行上述操作。 省略概念,讲思路。 1、首先对于未排序数组,将数组最后一个元素作为轴(pivot)和其它数组元素比较。从左开始向右边开始找到第一个比轴还要大的数组元素,然后记录其下标;然后再从右往左找到第一比轴还要小的数组元素并记录其下标,交换这两个数的原创 2021-10-12 23:38:41 · 44 阅读 · 0 评论 -
2021-10-12
常见排序算法归并排序(略过定义,把重点放在介绍如何一步步写出归并排序的思路)第一步思考:思路2、上述思路的实现第二步思考:3、时间复杂度分析及稳定性4、希尔排序如何选择自己的增量5、验证 归并排序(略过定义,把重点放在介绍如何一步步写出归并排序的思路) 第一步思考: 一开始:假设有一个自中间节点mid,在mid左右两边分别都已经有序的数组arr。如何将这个无序的数组变成有序呢? 思路 左半边的范围:0 – mid; 右半边的范围mid+1 – arr.length; 开始分别从左右两边的起始位置做比原创 2021-10-12 17:46:07 · 60 阅读 · 0 评论 -
2021-10-10
常见排序算法希尔排序1、什么是希尔排序:2、希尔排序的代码示例3、时间复杂度分析及稳定性4、希尔排序如何选择自己的增量5、验证 希尔排序 1、什么是希尔排序: 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。 希尔排序又称缩小增量排序,因 DL.Shell 于 1959 年提出而得名。 它通过比较相距一定间隔的元素来进行,各趟比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。 希尔排序是改进的直接插入排序,运用了插入排序的思想,但是比插入排序要好。原创 2021-10-11 00:20:13 · 51 阅读 · 0 评论 -
2021-10-10
常见排序算法插入排序1、什么是插入排序(百度定义):2、插入排序的代码示例3、时间复杂度分析及稳定性4、改进的插入排序改进一:直接将判断写入循环条件改进二:降低交换频率,采取中间变量来操作,舍弃swap方法5、验证 插入排序 1、什么是插入排序(百度定义): 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外原创 2021-10-10 19:05:23 · 61 阅读 · 0 评论 -
2021-10-10
常见排序算法冒泡排序1、什么是冒泡排序:2、冒泡排序的代码示例3、时间复杂度分析及稳定性4、改进后的冒泡排序5、验证 冒泡排序 1、什么是冒泡排序: 冒泡排序(Bubble Sort),它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小)错误就把他们交换过来。重复地进行循环,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 2、冒泡排序的代码示例 //冒泡排序 static void bubbleSort(int[] arr){ for(int i =原创 2021-10-10 18:05:30 · 49 阅读 · 0 评论 -
2021-10-09
常见排序算法选择排序1、什么是快速排序:2、选择排序的代码示例3、时间复杂度分析4、改进后的选择排序5、进一步优化 选择排序 1、什么是快速排序: 选择排序(Selection sort)是一种简单直观的排序算法。 它的工作原理是:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小,然后放到已排序后的序列的末尾。 以此类推,直到全部待排序的数据元素的个数为零。 选择排序是不稳定的排序方法。 2、选择排序的代码示例 public class Selecti原创 2021-10-10 01:48:36 · 68 阅读 · 0 评论