1.
比较容易理解的“冒泡排序”的写法:
C语言版:
JS版:
2.
快速排序:
JS版:
3.
使用“尾插法”和“头插法”建立链表:
4.
使用头插法或者尾插法对单链表进行归并:
5.
利用栈匹配括号的算法:
6.
KMP算法:
7.
二叉树的遍历算法:
8. 二叉排序树BST
- 查找关键字的算法:
- 插入关键字的算法
- 二叉排序树的构造算法
9. 数组循环左移或右移
1 function reverse(arr, left, right) { 2 var i, j, temp; 3 for (i = left, j = right; i < j; ++i, --j) { 4 temp = arr[i]; 5 arr[i] = arr[j]; 6 arr[j] = temp; 7 } 8 } 9 10 // 数组循环左移m位11 function f1 (arr, m) {12 rear = arr.length - 1;13 reverse(arr, 0, m - 1);14 reverse(arr, m, rear);15 reverse(arr, 0, rear);16 }17 18 // 数组循环右移m位19 function f2 (arr, m) {20 rear = arr.length - 1;21 reverse(arr, 0, rear);22 reverse(arr, 0, m - 1);23 reverse(arr, m, rear);24 }
10.
1 // 斐波那契数列函数 2 function fibonacci(n){ 3 if(n==1||n==2) 4 return 1; 5 return fibonacci(n-1)+fibonacci(n-2); 6 } 7 8 function fibonacci(n) { 9 if (n === 1 || n === 2)10 return 1;11 12 var a = 1, b = 1, t = 0;13 while (n > 2) {14 t = b;15 b = a + b;16 a = t;17 --n;18 }19 return b;20 }
11.
1 // 题目描述 2 3 // 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 4 // 输入例子: 5 // removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2) 6 7 // 输出例子: 8 // [1, 3, 4] 9 10 function removeWithoutCopy(arr, item) {11 for(var i=0;i < arr.length;i++){12 if(arr[i] == item){13 arr.splice(i,1);14 i--;15 }16 }17 return arr;18 }
...