算法
数组中的俩个值交换
//数组中的俩个值进行交换位置
function swap(array, left, right) {
let rightValue = array[right]
array[right] = array[left]
array[left] = rightValue
}
颠倒顺序
//通过split变成数组,利用reverse方法倒序,最后join
function test(str){
console.log(str.split("").reverse().join(""))
}
test("lukangfeng");
数组去重
//通过键值对key,匹配是否有重复
function test(str){
var temp=[];
var object={};
for(let i=0;i<str.length;i++){
if(!object[str[i]]) {
object[str[i]] = true;
temp.push(str[i]);
}
}
return console.log(temp);
}
test([1,25,18,14,20,18,1,8,14,1,18]);
统计字符串出现最多的字母
function test(str){
var main=str.split("");
var arr={};
var max={"name":"name","num":0};
for(let i=0;i<main.length;i++){
if(arr[main[i]]){
arr[main[i]]=arr[main[i]]+1;
//判断是否最大,是就记录到max
if(max["num"]<arr[main[i]]){
max["name"]=main[i];
max["num"]=arr[main[i]];
}
}else{
arr[main[i]]=1;
}
}
return console.log(max);
}
test("woailukangfengtongjibagg");
冒泡排序
function test(str){
var arr=str;
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
console.log(arr)
}
}
//return console.log(arr)
}
test([12,19,11,2,46,7]);
快速排序
function quickSort(arr) {
if(arr.length<=1) {
return arr;
}
let leftArr = [];
let rightArr = [];
let q = arr[0];
for(let i = 1; i<arr.length; i++) {
if(arr[i]>q) {
rightArr.push(arr[i]);
}else{
leftArr.push(arr[i]);
}
}
return [].concat(quickSort(leftArr),[q],quickSort(rightArr));
}
test([12,19,11,2,46,7]);
不借助临时变量,进行两个整数的交换
function test(a,b){
b=b-a;
a=a+b;
b=a-b;
return console.log(a,b);
}
test(1,10);
插入排序
function insertion(array) {
for (let i = 1; i < array.length; i++) {
for (let j = i - 1; j >= 0 && array[j] > array[j + 1]; j--)
//俩俩交换
swap(array, j, j + 1);
}
return array;
}
//数组中的俩个值进行交换位置
function swap(array, left, right) {
let rightValue = array[right]
array[right] = array[left]
array[left] = rightValue
}
选择排序
function selection(array) {
for (let i = 0; i < array.length - 1; i++) {
let minIndex = i;
for (let j = i + 1; j < array.length; j++) {
//每一次得到最小的值,然后到前面
minIndex = array[j] < array[minIndex] ? j : minIndex;
}
//交换
swap(array, i, minIndex);
}
return array;
}
//数组中的俩个值进行交换位置
function swap(array, left, right) {
let rightValue = array[right]
array[right] = array[left]
array[left] = rightValue
}