首页 > 编程语言 >常用的一些算法

常用的一些算法

时间:2022-11-15 14:45:34浏览次数:37  
标签:常用 obj max arr 冒泡排序 console 算法 let 一些

<html>
<div>
  冒泡排序,数组去重,回文,字符串中出现次数最多的字符
</div>
<script>
  // 冒泡排序:
  function bubbleSort(arr) {
    let len = arr.length
    for (let i = 1; i < len - 1; i++) {
      for (let j = 0; j < len - i; j++) {
        if (arr[j] > arr[j + 1]) {
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    console.log("冒泡排序:", arr)
  }
  // 快速排序:
  function qSort(arr) {
    let base = arr[0]
    let left = []
    let right = []
    if (arr.length <= 1) return arr
    for (let n = 1; n < arr.length; n++) {
      if (arr[n] <= base) {
        left.push(arr[n])
      } else {
        right.push(arr[n])
      }
    }
    return [...qSort(left), ...[base], ...qSort(right)]
  }
  console.log('快速排序:', qSort([1, 3, 2, 4, 6, 5]))
  let arr = [1, 3, 2, 4, 6, 3, 5, 3]
  bubbleSort(arr)
  //  数组去重
  function uniqueArray(arr) {
    let temp = []
    for (let n in arr) {
      if (temp.indexOf(arr[n]) == -1) {
        temp.push(arr[n])
      }
    }
    console.log('数组去重:', temp)
    return temp
  }
  uniqueArray([1, 1, 2, 2, 3, 4])
  console.log('set数组去重', Array.from(new Set([1, 1, 2, 2, 3, 4])))

  function palindrome(str) {
    let str1 = str.split('').reverse()
    console.log("回文", str1, str == str1.join(''))
    return str == str1.join('')
  }
  palindrome('1221')
  // 字符串中出现次数最多的字符
  function findMax(str) {
    let ci = {}
    let max = ''
    let c = ''
    for (let n in str) {
      if (!ci[str[n]]) {
        ci[str[n]] = 1
      } else {
        ci[str[n]]++
      }
      if (max == '' || ci[str[n]] > max) {
        max = ci[str[n]]
        c = str[n]
      }
    }
    console.log('出现次数最多的字符以及次数是:', c, max)
    return max
  }
  findMax('ssssswwwwwweeerrrrrrrre')

  function deepCopy(obj) {
    if (typeof obj != 'object') return

    let newObj = obj instanceof Array ? [] : {}
    for (let n in obj) {
      if (obj.hasOwnProperty(n)) {
        newObj[n] = typeof obj[n] == 'object' ? deepCopy(obj[n]) : obj[n]
      }
    }
    return newObj
  }

  console.log("深拷贝:", deepCopy({
    name: '123',
    person: {
      age: 2
    }
  }))
</script>

</html>

 

标签:常用,obj,max,arr,冒泡排序,console,算法,let,一些
From: https://www.cnblogs.com/sinceForever/p/16892369.html

相关文章

  • 代码随想录第三十四天|贪心算法
    今天继续贪心算法,重点是学习贪心算法的思维 1005.K次取反后最大化的数组和 classSolution{publicintlargestSumAfterKNegations(int[]nums,intk){......
  • 解读数仓常用模糊查询的优化方法
    摘要:本文讲解了GaussDB(DWS)上模糊查询常用的性能优化方法,通过创建索引,能够提升多种场景下模糊查询语句的执行速度。本文分享自华为云社区《GaussDB(DWS)模糊查询性能优......
  • 461. 汉明距离 ------ 位运算,二进制,异或求不同、内置函数、Brian Kernighan 算法
    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给你两个整数x和y,计算并返回它们之间的汉明距离。 示例1:输入:x=1,y=4输出:2解释:1......
  • 一文彻底读懂webpack常用配置
    开发环境constwebpack=require("webpack");constpath=require('path')module.exports={//entry:{//a:'./src/0706/a.js',//c:'./......
  • PyTorch常用5个抽样函数
    PyTorch是一个开源的深度学习框架,它提供了一个用于高级特性的Python包。在本文中,我们将介绍PyTorch中的常见抽样函数。抽样是一个统计过程,它从总体中提取一个子集,通过子集......
  • Linux-文件和目录常用命令-笔记
    目标查看目录内容​​ls​​切换目录​​cd​​创建和删除操作​​touch​​​​rm​​​​mkdir​​拷贝和移动文件​​cp​​​​mv​​查看文件内容​​cat​​​​more......
  • 信息学集训 | 01 温故知新,以更好状态学习数据结构和算法
    导读信息学能够有助于孩子未来工作发展,提升孩子的综合能力。这一期课,我们就要正式走进信息学数据结构和算法的世界了!我们将带领大家认识最基础的数据结构和算法,为第四学期深......
  • Spring&SpringBoot常用注解总结
    title:Spring&SpringBoot常用注解总结date:2022-11-1509:11:45tags:1.@SpringBootApplication这里先单独拎出@SpringBootApplication注解说一下,虽然我们一般不会......
  • Pikachu-一些简单的题
    目录遍历漏洞这题直接查找你想要的核心文件,比较简单敏感信息泄露查看网页源代码发现有账号和密码,直接登录PHP反序列化根据概述提示得知classS{public$......
  • 1710. 卡车上的最大单元数 ----- 贪心算法,自定义sort排序
    请你将一些箱子装在一辆卡车上。给你一个二维数组boxTypes,其中boxTypes[i]=[numberOfBoxesi,numberOfUnitsPerBoxi]:numberOfBoxesi是类型i的箱子的数量。numb......