转载自:前端李李
1.排序算法
2.阶乘算法
3.回文字符串判断
4.翻转字符串算法
5.整型数组去重算法
6.数组中最大差值
7.随机指定长度字符串
8.统计字符串中次数最多字母
9.生成菲波那切数列数组
1.排序算法
冒泡排序
1 2 3 4 5 6 7 8 9 10 11 12 13
| function bubbleSort(arr){ for(var i=1;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ var temp; if(arr[j]>arr[j+1]){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; }
|
快速排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| function quickSort(arr,l,r){ var i,j,x; if(l< r){ i=l; j=r; x=arr[i]; while(i< j){ while(i< j&&arr[j]>=x){ j--; } if(i< j){ arr[i]=arr[j]; } while(i< j&&arr[i]< x){ i++; } if(i< j){ arr[j]=arr[i]; } } arr[i]=x; quickSort(arr,i+1,r); quickSort(arr,l,i-1); } return arr; }
|
2. 阶乘算法
1 2 3 4 5 6 7 8 9 10 11 12 13
| function bubbleSort(arr){ for(var i=1;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ var temp; if(arr[j]>arr[j+1]){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; }
|
3. 回文字符串判断
1 2 3 4 5 6 7 8 9 10 11 12
| function palindrome(str){ var re = /[W_]/g; var lowRegStr = str.toLowerCase().replace(re, ''); if (lowRegStr.length === 0) { return true; } if (lowRegStr[0] !== lowRegStr[lowRegStr.length - 1]) { return false; } else { return palindrome(lowRegStr.slice(1, lowRegStr.length - 1)); } }
|
4. 翻转字符串算法
1 2 3 4 5 6 7 8 9 10 11 12
| function reverseString(s) { var arr = s.split(''); var i = 0, j = arr.length - 1; while (i < j) { var t = arr[i]; arr[i] = arr[j]; arr[j] = t; i++; j--; } return arr.join(''); }
|
5. 整型数组去重算法
1 2 3 4 5 6 7 8 9 10 11
| function unique(arr){ var hashTable = {}; var data = []; for(var i = 0, l = arr.length; i < l; i++) { if(!hashTable[arr[i]]) { hashTable[arr[i]] = true; data.push(arr[i]); } } return data; }
|
6. 数组中最大差值
1 2 3 4 5 6 7 8 9 10 11
| function getMaxProfit(arr) { var minPrice = arr[0]; var maxProfit = 0; for (var i = 0; i < arr.length; i++) { var currentPrice = arr[i]; minPrice = Math.min(minPrice, currentPrice); var potentialProfit = currentPrice - minPrice; maxProfit = Math.max(maxProfit, potentialProfit); } return maxProfit; }
|
7. 随机指定长度字符串
1 2 3 4 5 6 7 8 9
| function randomString(n) { var str = 'abcdefghijklmnopqrstuvwxyz9876543210'; var tmp = ''; var l = str.length; for(var i = 0; i < n; i++) { tmp += str.charAt(Math.floor(Math.random() * l)); } return tmp; }
|
8. 统计字符串中次数最多字母
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| function findMaxDuplicateChar(str) { if(str.length == 1) { return str; } var charObj = {}; for(var i = 0; i < str.length; i++) { if(!charObj[str.charAt(i)]) { charObj[str.charAt(i)] = 1; } else { charObj[str.charAt(i)] += 1; } } var maxChar = '', maxValue = 1; for(var k in charObj) { if(charObj[k] >= maxValue) { maxChar = k; maxValue = charObj[k]; } } return maxChar; }
|
9. 生成菲波那切数列数组
1 2 3 4 5 6 7 8 9 10 11 12 13
| function getFibonacci(n) { var fibarr = []; var i = 0; while(i < n) { if(i <= 1) { fibarr.push(i); } else { fibarr.push(fibarr[i - 1] + fibarr[i - 2]) } i++; } return fibarr; }
|