1.
比较容易理解的“冒泡排序”的写法:
C语言版:
JS版:
2.
快速排序:
JS版:
3.
使用“尾插法”和“头插法”建立链表:
4.
使用头插法或者尾插法对单链表进行归并:
5.
利用栈匹配括号的算法:
6.
KMP算法:
7.
二叉树的遍历算法:
8. 二叉排序树BST
- 查找关键字的算法:
- 插入关键字的算法
- 二叉排序树的构造算法
9. 数组循环左移或右移
代码语言:javascript复制 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.
代码语言:javascript复制 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.
代码语言:javascript复制 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 }
...