随笔分类 - 算法 / 排序算法
摘要:1 前言 今天把排序的几个算法过一下,这节我们看一下快速排序,简单的来说就是先找位置再拆,我们看示例。 2 代码示例 /** * 快速排序 * 快排主要就是先找位置再拆 */ public static void quickSort(int[] arr, int start, int end) {
阅读全文
摘要:1 前言 今天把排序的几个算法过一下,这节我们看一下归并排序,简单的来说就是先拆再合,跟快排相反(快排时先找位置再两边拆),我们看示例。 2 代码示例 /** * 归并排序 * 特点就是 跟快排相反,快排是先找再拆分,归并是先拆再合 * 折半拆,指导拆分单个以后开始向上汇集 */ public st
阅读全文
摘要:1 前言 今天把排序的几个算法过一下,这节我们看一下希尔排序,简单的来说就是多次插入排序,我们看示例。 2 代码示例 /** * 希尔排序,也就是多次插入排序 * 可以参考插入排序,然后外边套一层间隙循环 * 间隙到最后为1,就跟插入排序一样了 */ public static void shell
阅读全文
摘要:1 前言 今天把排序的几个算法过一下,这节我们看一下插入排序,简单的来说就是从第2个元素往前寻找位置进行插入,我们看示例。 2 代码示例 /** * 插入排序 * 从第2个元素开始,往前插入 * 假设待排序的数量为:n * 要考虑的是: * 1、轮数还是 n-1 我们外层循环起始刚好是2 到 n *
阅读全文
摘要:1 前言 今天把排序的几个算法过一下,这节我们看一下直接选择排序,简单的来说就是默认某个位置为最小然后从位置后的元素逐个比较进行交换,我们看示例。 2 代码示例 /** * 直接选择排序 * 直接选择相当于直接把第 i 个看作是最大或者最小,然后依次跟后边的每个元素进行比较,比我小的就跟我交换一下
阅读全文
摘要:1 前言 今天把排序的几个算法过一下,这节我们看一下冒泡排序,简单的来说就是相邻两个两两交换,我们看示例。 2 代码示例 /** * 冒泡排序 * 相邻两个逐步交换,每轮选出一个最大的 * 假设待排序的数量为:n * 考虑的两点: * 1、外层循环,那要进行 n-1 轮,即可排完 所以外层的循环是
阅读全文