常见算法2:https://segmentfault.com/a/1190000008593715
/**
* @purpose: 冒泡排序
* @param: {Array} arr => 需要排序的数组;
* @return: {Array} arr => 排序后的数组;
*/
/*function bubble(arr) {
if(arr.length < 1) throw Error('数组为空数组');
if(arr.length === 1) return arr;
var len = arr.length;
for(var i=1;i<len;i++) {
for(var j=0;j<len-1;j++) {
if(arr[j]>arr[j+1]) {
// 不用第三个变量,交互两个值
arr[j] += arr[j+1];
arr[j+1] = arr[j] - arr[j+1];
arr[j] = arr[j] - arr[j+1];
}
}
}
return arr;
}
console.log(bubble([3,2,5,7,9,1]))*/
/**
* @purpose: 统计出现最多的字符串及数目
* @param: {String} str => 任意字符串;
* @return:
*/
/*function statisticMaxChart(str) {
// 字符串长度为1时
if(str.length === 1) return str;
// 统计字符及出现的次数
var strObj = {};
for(var i=0;i<str.length;i++) {
if(!strObj[str.charAt(i)]){
strObj[str.charAt(i)] = 1;
}else{
strObj[str.charAt(i)] += 1;
}
}
// 统计出现最多字符及次数
var maxValue = '',maxSum = 1;
for(var k in strObj) {
if(strObj[k] > maxSum) {
maxValue = k;
maxSum = strObj[k];
}
}
console.log(maxValue+'出现最多为'+maxSum+'次')
}
statisticMaxChart('jacksayhelloyouknow')*/
/**
* @purpose: 二分查找法
* @param: {Array} arr => 数据源;{String} key => 需要查找的数据
* @return:
*/
/*function cutSearch(arr,key) {
var low = 0,height = arr.length;
while(low <= height) {
var mid = parseInt((low+height)/2); // 4
if(key == arr[mid]) {
return arr[mid]
}else if(key > arr[mid]) {
low = mid + 1;
}else if(key < arr[mid]) {
height = mid - 1;
}
}
return -1;
}
console.log(cutSearch([1,2,3,4,5,6],4))*/
/**
* @purpose: 二分查找法(递归)
* @param: {} arr => ;
* @return:
*/
function test() {
}
/**
* @purpose: 数组去重(hash)
* @param: {Array} arr => 需要去重的数组;
* @return: {Array} newArr => 返回去重后的新数组
*/
function unique1(arr) {
if(arr.length === 1) return arr;
var obj = {},newArr = [];
for(var i=0;i<arr.length;i++) {
if(!obj[arr[i]]) {
obj[arr[i]] = true;
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique1([4,3,6,2,7,2,3]))
/**
* @purpose: 数组去重(排序)
* @param: {} arr => ;
* @return:
*/
function test(arr) {
}
/**
* @purpose: 数组去重(常规)
* @param: {} arr => ;
* @return:
*/
function test() {
}
网友评论