[如何用JavaScript征服Leetcode?]5.洗牌算法

news/2024/7/19 15:43:02 标签: js

如何用JavaScript征服Leetcode?

  • 算法步骤
  • 代码如下

今天带来的其实不是Leetcode的题目,是一个比较有趣的算法,洗牌算法,其实就是随机置乱。
产生一个随机数作为交换的位置,然后当前遍历的位置进行交换。

算法步骤

  • 1.建立一个数组大小为n的数组arr,分别存放1到n的数值;
  • 2.生成一个从0到n-1的整数,parseInt(),这个函数很神奇的,前面有篇博客阐述过,随机数记为x
  • 3.将arr的当前遍历元素arr[i]和arr[x]交换位置
  • 4.遍历重复2.3即可

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        arr=[]
        for(let i=0;i<10;i++){
            arr.push(i)
        }
        console.log(arr);
        shuffle(arr)
        function shuffle(arr){
            let t
            for (let i = arr.length-1; i >= 0; i--){
                let randomNum=parseInt(Math.random()*(i+1))
                t=arr[randomNum]
                arr[randomNum]=arr[i]
                arr[i]=t            
            }
            console.log(arr);
        }
    </script>
</body>
</html>

http://www.niftyadmin.cn/n/1847056.html

相关文章

SpringBoot项目优化和Jvm调优

项目调优 作为一名工程师&#xff0c;项目调优这事&#xff0c;是必须得熟练掌握的事情。 在SpringBoot项目中&#xff0c;调优主要通过配置文件和配置JVM的参数的方式进行。 在这边有一篇比较好的文章&#xff0c;推荐给大家&#xff01; SpringBoot项目配置Tomcat和JVM参数 …

[JQuery学习笔记]JQuery入门导读

JQuery入门导读写在前面jQuery概述JavaScript库jQuery概述jQuery的基本使用jQuery的下载jQuery的使用步骤jQuery的入口函数jQuery的顶级对象$jQuery对象和DOM对象写在前面 能够说出什么是jQuery能够说出jQuery的优点能够简单使用jQuery能够说出DOM对象和jQuery对象的区别 jQu…

Elasticsearch的原理简介

简介 ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。 同时ES还是一个分布式文档数据库&#xff0c;其中每个字段均可被索引&#xff0c;而且每个字段的数据均可被搜索&#xff0c;能够横向扩展至数以百计的服务器存储以及处理PB级的数据。 …

消息队列与生产消费者模型

消息队列与与生产者消费者模型 消息队列 package com.m.test;import java.util.LinkedList;/*** 消息队列** Author yzx*/ public class Queue<T> {private LinkedList<T> list new LinkedList<T>();private static final Integer MAX_SIZE 10;private I…

史上最刁钻的十道英语面试题

http://center.ef.com.cn/blog/article/interview "Given the numbers 1 to 1,000, what is the minimum number of guesses needed to find a specific number, if you are given the hint higher or lower for each guess you make?" -- Facebook “在数字1-1,000…

Spring产生历史

Spring Java 领域第一框架&#xff0c;是行业标准和规范。Java EE 基于 Java 的企业级解决方案&#xff0c;Java WEB 开发就是 Java EE 的一部分。Java 初期使用 EJB 开发&#xff0c;但是这种方式非常繁重&#xff0c;不灵活&#xff0c;不便于维护和升级。//创建Class三种方…

SpringCloud Alibaba注册中心Nacos整合

一、SpringCloud Alibaba 阿里18年开发的微服务一站式解决方案。 https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md 二、Nacos 注册中心 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 作为我们的注册中心和配置中心。 注…

AOP-MyBatis 多数据源

MyBatis 多数据源 一、AOP多数据源 pom.xml <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifa…