胸部
动作
数量
注意事项
上斜板杠铃卧推
5x10
平板杠铃卧推
5x10
上斜板哑铃卧推
4x10
龙门架十字夹胸
5x12
器械夹胸
5x12
哑铃飞鸟
4x12
背部
动作
数量
注意事项
高位下拉
6x10
坐姿划船
6x10
直臂下压
6x12
哑铃划船
5x12
杠铃划船
5x10
可选项,会做就做
肩膀
动作
数量
注意事项
坐姿哑铃推举
5x10
鹿家哑铃飞鸟(平举)
8x15
哑铃后束飞鸟
6x15
哑铃前平举
5x15
胳膊
动作
数量
注意事项...
第二个工业级别的算法
快速排序有就地排序和占用空间的排序
暴力写法(经典写法)
但是这个写法空间占用太大,所以不用这个写法
可以通过快排找到数组中第K大的元素
找到前K大的元素
使用空间最少,速度最快
1234567891011121314151617181920212223function quickSort2(ary) { if (ary.length < 2) { return ary.slice() } var pivot = ary[Math.floor(Math.random() * ary.length)]//0到数组长度...
选择排序
速度较慢,速度为 O(n^2)123456789101112131415//不稳定 n*nfunction selectSort(ary) { var l = ary.length var minPos for(var i = 0; i < l - 1; i++) { minPos = i for(var j = i + 1; j < l; j++) { if (ary[j] < ary[minPos]) { minPos = j } } ...
冒泡排序
速度较慢,速度为 O(n^2)
1234567891011121314151617//冒泡排序//循环控制趟数,i是趟数-1function bubble(array){ for (var i = 0; i < array.length; i++) { //每一趟里面:要对比所有的数据进行交换,把大的值交换到后面的位置 for (var k = 0; k < array.length - i - 1; k++) { //进行判断大小然后交换两个数据 if (array[k]>array[k+1]) &...
归并排序
第一个工业级别的算法
归并排序没有办法就地排序12345678910111213141516171819202122function mergeSort(ary) { if (ary.length < 2) { return ary.slice() } var mid = Math.floor(ary.length / 2) var left = mergeSort(ary.slice(0, mid)) var right = mergeSort(ary.slice(mid)) var result = [] while(...
bind函数123456//bind的实现function bind(f,...fixedArgs){ return function(...args){ return f(...fixedArgs,...args) }}
123456789//bind原来的实现function bind(f) { var fixedArgs = Array.from(arguments).slice(1) return function() { var args = Array.from(arguments) va...
curry函数123456789101112131415161718192021222324252627282930313233343536373839404142function curry(f, l = f.length) { return function(...args1) { if (args1.length >= l) { return f(...args1) } else { return function(...args2) { if (args1.lengt...
深度优先遍历
- 二叉树前序遍历
1 | //二叉树前序遍历 |
- 二叉树后序遍历
1 | //二叉树后序遍历 |
- 二叉树中序遍历
1 | //二叉树中序遍历 |
广度优先遍历
- 广度优先遍历是从二叉树的第一层(根结点)开始,自上至下逐层遍历;在同一层中,按照从左到右的顺序对结点逐一访问。
实现:
123456789101112131415161718192021// 把基于回调的函数转为基于promisefunction promisify(f) { //返回一个函数收集参数 return function(...args) { return new Promise((res,rej) => { f(...args,(err,data) => { if(err){ rej(err) }else { res(data)...
递归写法
1234567891011121314151617function binarySearch(data, dest, start, end){ var end = end || data.length - 1, start = start || 0, middle = Math.floor((start + end) / 2); // 递归完成条件 if(data[middle] == dest){ return middle; } // 条件判断进行不同的递归 if(dest &l...