随笔分类 - 算法
摘要:简述 快速排序的基本思想是 分治 ,这一点与归并排序一样。实现原理是选择一个元素作为中轴,根据与中轴的关系进行分组(比中轴大的放一起,比中轴小的放一起),分组后的元素在分别进行相同的操作,直到无法再进行分组,最后得到便是有序的数组。 分类 分类依据:主要由 如何选取选择中轴 引起的分类 常见分类: 
        阅读全文
                
摘要:原理简述 归并排序的基本思想是 分治 ,基本原理就是将原数组分为两部分,然后再将分开的数组在进行合并。 图解 代码 算法分析 时间复杂度:O(n log n) 空间复杂度:O(n) 稳定性:稳定
        阅读全文
                
摘要:简述 插入排序也是比较常用、简单的一种排序方式,同时呢也是我们生活中最常用的一种排序方式:打布克牌抓牌的时候就是使用的插入排序。 原理 假设我们要排序的数组为[10,6,3,9,8,7,5,4,6] 我们从1开始一直遍历到n 我们遍历到之前的元素都是有序的 那么我们遍历的新元素后,只需要对前边的有序
        阅读全文
                
摘要:设定有三个柱A,B,C,目标是将A上面的盘子全部移动到C上面(合法移动) 递归算法 这是一道递归方法的经典题目,乍一想还挺难理清头绪的,我们不妨先从简单的入手。 假设 n = 1 ,只有一个盘子,很简单,直接把它从 A 中拿出来,移到 C 上; 如果 n = 2 呢?这时候我们就要借助 B 了,因为
        阅读全文
                
摘要:原理简述 冒泡排序是最简单的排序算法之一,主要是通过不断交换相邻元素,实现排序。 简单例子 对[4,2,6,3,2,1]进行升序排序 第一遍(排出最大值) 第二遍(排出次大值) 第三遍 第四遍 第五遍 每次循环都通过比较相邻的元素,逆序就进行交换,每次都将本次循环内的最大元素交换到最后,通过多次循环
        阅读全文
                
摘要:基本原理 选择排序的简单原理:选择排序算法通过从未排序部分重复查找最小元素(考虑升序)并将其放在开头来对数组进行排序。 将数组两个子数组: 已排序子数组 未排序子数组 选择排序中每次循环都会从未排序子数组中选取最小元素放入已排序子数组 小例子 排序数组:[2,3,6,2,7,5,1,4] 第一次循环
        阅读全文
                
摘要:欧几里得算法 基本原理 反复执行下面的等式: gcd(m,n) = gcd(n,m mod n) (m mod n 表示m除以n之后的余数) 例如:gcd(60,24) = gcd(24,12) = gcd(12,0) = 12 描述: java代码 连续整数检测法 描述: java代码
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号