刚接触算法,以为就是很简单的计算方法。学习了算法之后才知道算法就像是“菜谱”,特定的算法就是菜谱中一道菜的制作流程。
算法:就是定义良好的计算过程,取一个或者一组的值作为输入,并产生一个或者一组的值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化为输出结果。
下面是几道我最近了解到的常见算法题,有些做了简单的解释,如果有兴趣的可以阅读。
1. 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。阶乘通常简写成 n!
例如: 5! = 1 * 2 * 3 * 4 * 5 = 120)
要求:阶乘函数,factorialize(0) 应该返回1
2.找到提供的句子中最长的单词,并计算它的长度。
注意:函数的返回值为数字;"The quick brown fox jumped over the lazy dog"
3.确保字符串的每个单词首字母都大写,其余部分小写;"I'm a little tea pot"
4.把一个数组arr按照置顶的数组大小size分割成若干数组块
例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];
分析: 这个chunk函数的作用;这个函数是用在数组上的一个方法,
它将原来数组中的元素,按照给定的长度进行均分,均分后每一部分都是一个新的(小)数组,
然后将这些均分的每一部分再次组成一个新的(大)数组;如果不能够均分的话,
新的(大)数组的最后一个元素则包含这些剩下的元素。依赖arrayObject.slice(start,end);
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
注释:您可使用负值从数组的尾部选取元素。
注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。定义数组var myArray=new Array()
5.重复一个指定的字符串num次,如果num是负数则返回空字符串
注释:repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。
6.js快排 sort 函数递归算法去做
7.数组的冒泡排序