![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
分享一些算法知识
nzsdyun123
这个作者很懒,什么都没留下…
展开
-
插入排序
插入排序 我们先抛开插入排序的定义和实现,从一个简单例子:插入一个元素到有序数组进行展开说明。 插入一个元素到有序数组 假设我们现在有一个有序数组[1,3,5],现在给你一个数字2,假定这个有序数组容量足够的情况下,如何将数字2插入到这个有序数组呢?一般我们可以得出如下的粗略算法步骤: 寻找2在有序数组中的下标位置。 将要插入的下标位置的元素及之后的元素往后移,为2腾出空间。 将2插入到数组的下标位置。 现在我们一个个分析这三个步骤的实现 查找插入的位置 查找元素要插入的数组的下标位置,我们有两种实现方原创 2020-09-24 15:38:52 · 138 阅读 · 0 评论 -
选择排序
选择排序 在讲解选择排序算法前,我们先来讨论和实现下冒泡排序的第二种写法。 冒泡排序的第二种写法 我们在冒泡排序算法中讲到,冒泡排序的核心思想为:循环N轮,每轮在剩余数组中交换一个最大值到数组的末端,其代码如下: public static void bubbleSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i;原创 2020-07-03 17:35:18 · 104 阅读 · 0 评论 -
冒泡排序
冒泡排序 我们先抛开冒泡排序的定义和其算法的步骤。我们从零开始一步一步来实现这个冒泡排序。 交换两个元素 假如现在给你一个简单的数组,它只有两个元素5和4。现在叫你把数组元素5和4的位置进行交换。那么我们很容易的可以写出如下经典交换代码: public static void swap(int[] array) { assert array != null && array.length == 2; int temp = array[0]; array[0] = ar原创 2020-06-19 18:23:48 · 244 阅读 · 0 评论 -
排序算法起始篇
排序算法开篇说明 目的 写这些文章是为了记录目前常见的排序算法及其背后的相关思想,对以前零散的知识做一个比较系统和完整的总结。 说明 为了把重心放置在排序算法核心思想上,不对排序算法的其他部分进行展开,如其算法的时间复杂度、空间复杂度等。 为了最简单化的分析和实现代码,使用整型数组进行排序来讲解。当然排序算法适合一切可比较的对象,大家可以使用Comparable和Comparator来定义对象的比较规则来适应排序算法。 文章部分大部分都是使用文字进行讲解,一切能用文字说明的部分都不想用图片和动态图来说明(原创 2020-06-18 15:14:26 · 1251 阅读 · 0 评论