随笔分类 -  算法

算法相关
摘要:快速排序是一种分治排序算法,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 1.代码实现 以java实现为例: public cl 阅读全文
posted @ 2020-12-15 16:12 白诗 阅读(230) 评论(0) 推荐(0)
摘要:希尔排序是插入排序的高效版本,算法实现原理是先定义一个间距gap,以二分的方式作为间距进行排序来举例,先把序列分成gap个组,然后对每个gap中的元素进行插入排序。再将gap二分,产生新的gap,继续重复上述操作,直到gap=1,做整个序列的插入排序,这个不断二分插入排序的过程中整体序列是不断向有序 阅读全文
posted @ 2020-12-10 18:01 白诗 阅读(124) 评论(0) 推荐(0)
摘要:选择排序是也是一种简单粗暴的排序算法。实现原理是一直找无序序列中的最小值(或者最大值)与待排序下标进行交换。 1.代码实现 以java实现为例: public class SelectionSort { public static int[] selectionSort(int[] nums) { 阅读全文
posted @ 2020-12-08 16:20 白诗 阅读(79) 评论(0) 推荐(0)
摘要:插入排序是一种最简单直观的排序算法,依次选择待排序元素,往前面的有序序列中插入。 1.代码实现 以java实现为例: public class InsertSort { public static int[] insertSort(int[] nums) { for (int i = 1; i < 阅读全文
posted @ 2020-12-07 17:03 白诗 阅读(214) 评论(0) 推荐(0)
摘要:冒泡排序是对序列进行循环遍历的一种排序方式,每次把最小或最大的元素放到序列的最前端。 1.代码实现 以java实现为例: public class BubbleSort { public static int[] bubbleSort(int[] nums) { for (int i = 0; i 阅读全文
posted @ 2020-12-07 14:47 白诗 阅读(98) 评论(0) 推荐(0)
摘要:归并排序是采用分治法的一个非常典型的应用。本质是将序列不断分成小的序列,分开排序后逐步合并成完整序列。 1.代码实现 以java递归实现为例: public class MergeSort { public static int[] mergeSort(int[] nums, int start, 阅读全文
posted @ 2020-12-03 15:31 白诗 阅读(108) 评论(0) 推荐(0)