自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DreamFive

共勉

  • 博客(6)
  • 收藏
  • 关注

原创 JavaScript 数据结构与算法十大经典排序算法-快速排序(六)

优点:快速排序的特点就是快,而且效率高。 缺点:需要另外声明俩个数组,浪费了内存空间 原理 先找到一个基准点(一般在数组的中部),然后把基准点从数组中取出,数组剩余元素依次与该基准点做对比,如果比它小,放左边,反之,放右边 左右分别用一个空数组去存储比较后的元素 最后递归上述操作,直到数组长度 <= 1 代码实现 const quickSort = arr => { if ( a...

2019-08-21 13:40:56 155

原创 JavaScript 数据结构与算法十大经典排序算法-归并排序(五)

原理 归并排序,是先把数组从中间分成两部分,然后对前后两部分分别排序,再将排序好的连部分合并在一起。 核心思想是将两个有序的数列合并成一个大的有序序列。通过递归,层层合并,即为归并 ...

2019-08-21 10:32:28 179

原创 JavaScript 数据结构与算法十大经典排序算法-选择排序(四)

原理 选择排序实现思路有点类似插入排序,也分排序区间和为排序区间。选择排序每次会从未排序区间中找到最小(最大)的元素,将其放到已排序的末尾 步骤 首先在未排序的序列中找到最小(最大)元素,存放到排序序列的起始位置(也是末尾,因为是第一次) 再从剩余未排序元素中继续寻找最小(最大)元素,然后放到已排序序列末尾 重复第二步,直到所有元素都排序完毕 实现 const selectSort = arr...

2019-08-08 11:14:36 142

原创 JavaScript 数据结构与算法十大经典排序算法-希尔排序(三)

一、希尔排序 希尔排序其实也是插入排序的一种,也叫缩小增量排序。 原理 先将整个待排序的记录序列分割成若干子序列 分别进行直接插入排序 待整个序列中的记录基本有序时,在对全体记录进行一次直接插入排序 简单来说,就是按一定的间隔对数列进行分组,然后在每一个分组中做直接插入排序,随后逐次缩小间隔,在每一个分组中做插入排序…直到间隔等于1,做一次插入排序后结束。 希尔排序的核心在于间隔序列的设定,...

2019-08-07 17:20:27 175

原创 JavaScript 数据结构与算法十大经典排序算法-插入排序(二)

插入排序分为 直接插入排序 和优化后的 折半插入排序 与 希尔排序,通常所说的是直接插入排序。 一、直接插入 原理 通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。 步骤 从第一个元素开始,该元素认为是已经被排过序的 取出下一个元素,在已排序的元素序列中从后向前做对比 如果对比的元素(已排序)大于新元素,将该元素移到下一个位置,也就是往后移一位 重复步骤 3 ...

2019-08-05 23:49:40 116

原创 JavaScript 数据结构与算法十大经典排序算法-冒泡排序(一)

实现原理 简单来说就是实现的思想 冒泡排序只会操作相邻的两个数据 每次冒泡操作都会对相邻两个元素进行比较,看是否满足大小关系要求。如果不满足就让他俩互换 一次冒泡会让至少一个元素移动到它应该再度位置,重复 n 次,就完成了 n 个数据的排序工作 特点 优点:排序算法的基础,简单使用易于理解 缺点:比较次数多,效率较低 实现 //冒泡排序(未优化) const buddleSort = ar...

2019-08-02 18:18:25 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除