随笔分类 - 算法
摘要:实现的思路 选择一个数组中的某一项做为基准(这里选择中间的这一项作为基准) 将这一项从原数组中删除 将原数组中的每一项与基准项进行比较,比基准项小的放入左数组中,比基准项大的放入右数组中 分别对左、右数组进行以上操作,直到数组长度小于等于1时结束 将左数组、基准项、右数组拼接成一个数组 代码 fun
阅读全文
摘要:思想 归并排序采用的主要思想是分治思想 分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了。 思路 分阶段 可以理解为递归拆分子序列的过程,对数列每次都进行切分,直到不能再切分为止 治阶段 需要将两个已经有序的序列合并成一个新的有序序列 代码实现 /
阅读全文
摘要:插入排序 插入排序是一种简单直观的排序算法,它的工作原理是:通过构建有序的序列,将未排序的数据,在已排序序列中从后向前扫描,找到相应的位置并插入 算法的原理 数组的第一个元素是已经排序好的,从第二个元素开始 取出下一个元素,在已排序好的序列中从后向前进行比较 如果当前元素(current)小于前一个
阅读全文
摘要:堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 简单的堆介绍 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于
阅读全文
摘要:原理: 首先从原始数组中找到最小的元素,并把该元素放在数组的最前面,然后再从剩下的元素中寻找最小的元素,放在之前最小元素的后面,直到排序完毕。 思路: 在长度为N的数组中,第一次遍历,我们可以先假设第一个数为最小的,从n-1个数开始遍历,找到最小的和第一个数交换。 第二次,假设第二个数为最小的,从n
阅读全文
摘要:算法的思想 冒泡排序属于典型的交换排序。交换排序顾名思义就是通过元素的两两比较,判断是否符合要求,如过不符合就交换位置来达到排序的目的。冒泡排序名字的由来就是因为在交换过程中,类似水冒泡,小(大)的元素经过不断的交换由水底慢慢的浮到水的顶端 ####算法实现的具体思路 依次比较相邻的两个数,将比较小
阅读全文

浙公网安备 33010602011771号