各种算法(一)

求1+2+3+…+n

1
2
3
4
5
6
7
function Sum_Solution(n) {
var result = n;
if(n > 0)
result += Sum_Solution(n-1);
return result;
}
console.log(Sum_Solution(3)); //6

统计一个数字在无序数组中出现的次数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function count(arr,num){
arr.sort(function(a,b){
return a-b;
});
var result;
var left = arr.indexOf(num);
var right = arr.lastIndexOf(num,arr.length-1);
if(arr.indexOf(num) == -1){
result = 0;
}else{
result = right-left+1;
}
return result;
}
console.log(count([5,5,5,5,5,2,3],5)); //5

找出数组中任意一个重复的数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function duplicate(numbers, duplication){
// write code here
//这里要特别注意~找到任意重复的一个值并赋值到duplication[0]
//函数返回True/False
var temp = [];
for(var i in numbers){
if(temp.indexOf(numbers[i])==-1){
temp.push(numbers[i]);
}else{
duplication[0] = numbers[i];
return true;
}
}
return false;
}
console.log(duplicate([5,5,5,5,5,2,3],[]));//true

快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function quickSort(arr){
if(arr.length <= 1){
return arr;
}
var pivotIndex = Math.floor(arr.length/2);
var pivot = splice(pivotIndex,1)[0];
var left = [];
var right = [];
for(var i in arr){
if(arr[i] < pivot){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot],quickSort(right));
}
-------------本文结束 感谢您的阅读-------------