随笔分类 - 算法与数据结构
摘要:程序员必须掌握的核心算法思想 算法思想 ≠ 代码实现。同一个思想可以用多种语言、多种方式来实现。掌握算法思想,就是掌握问题求解的本质,通过不同的实现方式,将问题解决得更加高效。 概述 算法是解决问题的方法,解决问题的方法离不开指导思想,指导思想是解决问题的关键。 作为程序员,当我们面对一个复杂问题时
阅读全文
摘要:说明 数组(含List)去重复在日常工作中经常遇到,很多时候用到Set数据结构,但有时候我们需要针对数据进行干预,这时候就需要用其他的实现方式了。以下列出各种的去重方式,基本含括了所有情况。 源码下载 https://github.com/microwind/algorithms/blob/main
阅读全文
摘要:JavaScript实现归并排序算法详解 说明 归并排序(Merge Sort)算法,也叫合并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,
阅读全文
摘要:说明 快速排序(QuickSort),又称分区交换排序(partition-exchange sort),简称快排。快排是一种通过基准划分区块,再不断交换左右项的排序方式,其采用了分治法,减少了交换的次数。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部
阅读全文
摘要:关于质因数分解算法的不同语言实现,通过实例来看不同语言的差异 什么是质因数算法? 即任意一个合数可以分解为多个质数相乘。例如: 20 = 2 * 2 * 5 45 = 3 * 3 * 5 210 = 2 * 3 * 5 * 7 520 = 2 * 2 * 2 * 5 * 13 按数学运算:列竖式或左
阅读全文
摘要:【希尔排序算法详解】Java/Go/Python/JS/C不同语言实现 说明 希尔排序(Shell Sort)是插入排序的一种改进版,也称递减增量排序算法(Diminishing Increment Sort),其实质是将数列分组,然后再按插入算法分别排序,因DL.Shell于1959年提出而得名。
阅读全文
摘要:说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation
阅读全文

浙公网安备 33010602011771号