首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速排序

本打算学波快速排序,查了查资料,吓大跳,说大神的快排是不对的,以此开始了大波大神针对这个问题的各种观点。...感兴趣的可以看看知乎这篇帖子: https://www.zhihu.com/question/276746146/answer/390729075 不管对还是错,大神的快排思路是对的: 在数据集之中...对"基准"左边和右边的两个子集,不断重复第步和第二步,直到所有子集只剩下个元素为止。...先看看大神的代码: var quickSort = function(arr) { if (arr.length <= 1) {return arr; }//判断数组,个长度直接返回...但是大神只是提供思路,这些问题都是能优化的。当时ES6也没出来,以后还会有更多的数组扩展,那不是能更简单的实现快速排序,但是快速排序的思路是不变的。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    图像与滤波-

    、为什么图像是波? 我们知道,图像由像素组成。下图是张 400 x 400 的图片,共包含了 16 万个像素点。 ?...如果把每行所有像素(上例是400个)的红、绿、蓝的值,依次画成三条曲线,就得到了下面的图形。 ? 可以看到,每条曲线都在不停的上下波动。...对比下图像就能发现,曲线波动较大的地方,也是图像出现突变的地方。 ? 这说明波动与图像是紧密关联的。图像本质上就是各种色彩波的叠加。...再看个例子。 ? 上图有三根曲线,黄线是高频波动,红线是低频波动。它们可以合成为根曲线,就是绿线。 ?...上图中,绿线进行低通滤波和高通滤波后,得到两根黑色的曲线,它们的波形跟原始的黄线和红线是完全致的。

    86130

    -

    、单体软件要理解微服务,首先需要理解软件架构的演变。早期的软件,所有功能都写在起,这称为单体架构(monolithic software)。整个软件就是单的整体,彷佛体化的机器。...面向服务架构"就是把个大型的单体程序,拆分成个个独立服务,也就是较小的程序。每个服务都是个独立的功能单元,承担不同的功能,服务之间通过通信协议连在起。这种架构有很多优点。...(1)每种服务功能单,相当于个小型软件,便于开发和测试。(2)各个服务独立运行,简化了架构,提高了可靠性。(3)鼓励和支持代码重用,同个服务可以用于多种目的。...它依然使用"服务"作为功能单元,但是变成了轻量级实现,不需要新增服务器,只需要新建容器(个进程),所以才叫做"微服务"。个微服务就是个独立的进程。...它和容器技术、云服务起,定会在未来的软件开发中,扮演越来越重要的角色。

    1K20

    :神经网络入门

    作者 | 整理 | AI科技大本营(rgznai100) 眼下最热门的技术,绝对是人工智能。 人工智能的底层模型是"神经网络(neural network)。...上图的圆圈就代表个感知器。它接受多个输入(x1,x2,x3...),产生个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。...二、感知器的例子 下面来看个例子。城里正在举办度的游戏动漫展览,小明拿不定主意,周末要不要去参观。 他决定考虑三个因素。 天气:周末是否晴天? 同伴:能否找到人起去?...确定输入和输出 找到种或多种算法,可以从输入得到输出 找到组已知答案的数据集,用来训练模型,估算w和b 旦新的数据产生,输入模型,就可以得到结果,同时对w和b进行校正 可以看到,整个过程需要海量计算...然后,找到种或多种图像比对算法,作为感知器。算法的得到结果是个概率,比如75%的概率可以确定是数字1。这就需要设置个阈值(b)(比如85%的可信度),低于这个门槛结果就无效。

    1.3K60

    老师的又开源神作

    给大家报告下,老师的《C语言入门教程》于 2021 年 9 月 7 日上线了! 对,和往常样,这个教程是开源的,采用知识共享许可证,源码托管在 GitHub,大家可以自由使用。...而老师的作品,想必大家都有所耳闻,硬核的同时,又通俗易懂,深受广大读者的喜欢。 福音啊!我要狂吹了老师的这份《C语言入门教程》。 考虑到很多小伙伴喜欢 PDF 版的,我就立马给准备了!...那配上老师的这个在线文档教程,可以说是完美! 我对这份教程是非常满意的,该讲的地方都讲到了,示例也给了很多,对初学者来说,完全够用了。...老师在写这份《C语言入门教程》的时候还是花费了很多心思的,因为 C 代码的写法实在是太自由了,而平常工作中又确实很少有机会写 C 代码,所以前前后后花了 6 个多月的时间。...OK,今天就简单聊到这里,希望老师的这份教程能帮助到大家。我们下期见~

    1.9K10

    推荐】学习 vue3 源码的利器

    本文作者:花果山瑞哥[1] 哈喽,大家好,今天给大家推荐个学习 vue3 源码的最佳利器 也是老师在第 144 期周刊[2]里面推荐的 ?...真让人头秃 第次看到这个函数的同学肯定是脸懵逼,这要怎么看嘛?我的秀发还能不能保住了?可能这个时候就有好多同学已经被劝退了(悄咪咪的关闭了 vscode) 说的是不是你 -_-!...那其实在社区里面就会有这种类型的库,只实现库的核心逻辑,可以让同学们更快速的理解库的核心逻辑,比如个 mini 版本 但是在社区里面我并没有发现这么个 mini 版本,所以我就索性撸起袖子自己上 为了社区...就是自己把功能实现遍,这对于我自己的收获也是巨大的。...example 是放置了些 demo lib 是 build 之后的文件(demo 实际执行的文件) src 是核心逻辑 Example 的食用 大家开始的时候可以先从 example 里面的 demo

    1.5K10

    JS高阶(Promise

    抽象表达: Promise是ES6中新增的规范; Promisejs中异步编程的新解决方案(旧方案采用函数回调); 具体表达: 从语法上说:Promise个构造函数; 从功能上说:Promise...(未定态)、resolved / fulfilled(成功)、rejected(失败) 说明: 只有这2种,且promise对象只能改变次 无论变为成功还是失败都会有个结果数据 成功结果数据般为...promise 对象; 说明:返回个成功/失败的 promise 对象; //创建promise.resolve对象 //如果传入的对象为 非promise对象 则返回的是个 成功的promise...对象; 说明:只返回个失败的 promise 对象; //创建promise.resolve对象 //如果传入的对象为 非promise对象 则返回的是个 成功的promise对象 //如果传入的对象...) => {} promises:包含 n 个 promise 对象的数组; 说明: 返回个新的 promise ,只有所有的 promise 都成功才返回成功,只要有个失败则返回失败; let

    2.4K10

    JS 手写: Promise

    Promise 对象用于表示个异步操作的最终完成 (或失败)及其结果值。 # 描述 Promise 对象代表个在这个 promise 被创建出来时不定已知的值。...# Promise 的链式调用 我们可以用 promise.then(),promise.catch() 和 promise.finally() 这些方法将进步的操作与个变为已敲定状态的 promise...promise 对象都成功的时候才会触发成功,旦有任何个 iterable 里面的 promise 对象失败则立即触发该 promise 对象的失败。...返回promise,该 promise 在所有 promise 完成后完成。并带有个对象数组,每个对象对应每个 promise 的结果。...# Promise.any(iterable) (opens new window) 接收Promise 对象的集合,当其中的promise 成功,就返回那个成功的 promise 的值。

    1.4K40

    怎么理解JS Promise

    、何为Promise 在MDN web docs 里面是这么解释 Promise的: Promise 对象是个代理对象(代理个值),被代理的值在Promise对象创建时可能是未知的。...我们来看看大大是怎么总结的: (1)对象的状态不受外界影响,promise对象代表个异步操作,有三种状态,pending(进行中)、fulfilled(已成功)、rejected(已失败)。...四、Promise与异步 Promise是异步的。js异步操作是通过js的事件循环机制EventLoop实现的。...对于异步任务来说,当其可以被执行时,会被放到个 任务队列(task queue) 里等待JS引擎去执行。...取宏任务(macrotask)队列中的第项执行。 回到第二步。 注意: 微任务队列每次全执行,宏任务队列每次只取项执行。 总结起来js引擎对程序的执行顺序是:1。

    11.7K30

    asyncawait 回调地狱解决方案

    问题背景 在 js 异步编程中,通过回调函数实现 当多个异步逻辑间产生顺序或关联逻辑,就会产生回调嵌套(回调地狱),导致代码丑陋且难以阅读,形如: fetch(function() { fetch(...function() { // ... }); }); 从附录中阮老师的文章中得出: 早期解决方案是 Promise,可以将横向代码通过 then 包装为纵向 更近步的引出 Generator...,而 async/await 即是 Generator 的语法糖 简单说,回调嵌套问题优化方案,根据时间线整理为: 回调嵌套 -> Promise -> Generator(async/await) 使用...Async/Await Example function callapi(v) { return new Promise...await 方法阻塞当前行代码直到异步响应完成,使得异步代码可以用同步的写法,摆脱了回调嵌套问题 附录 老师针对 async、Generator、Promise 做了比较详细的解释 http:/

    25730

    JS异步执行,Promise用法

    Promise Promise 是异步编程的种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。...它最早由社区提出并实现,ES6将其写进了语言标准,统了用法,并原生提供了Promise对象。...特点体现在以下四点: 内置执行器 更好的语义 更广的适用性 返回值是 Promise await   顾名思义,等待。正常情况下,await命令后面是Promise 对象,返回该对象的结果。...如果不是 Promise 对象,就直接返回对应的值。另种情况是,await命令后面是个thenable对象(即定义then方法的对象),那么await会将其等同于 Promise 对象。...然后在handle函数前加上async关键词,这样就定义了个async函数。在该函数中,利用await来等待Promise

    5.4K30
    领券