Chrome OS

面试刷题必看!Python中的5大排序算法及其实现代码

安稳与你 提交于 2020-08-17 08:12:32
排序是每个 IT 工程师和开发人员必备的知识技能。不仅要通过编程面试,而且要了解算法本身。不同的排序算法很好地展示了算法设计如何对程序的复杂性、速度和效率产生如此大的影响。 让我们来看看排名前5,也是最常见,面试中经常被问到的排序算法,看看如何用Python实现它们! 1.冒泡排序 冒泡排序是 CS 入门课程中最常讲授的一种,因为它清楚地说明了排序的工作原理,同时又简单又易于理解。冒泡排序将逐步遍历列表并比较相邻的元素对。如果元素的顺序错误,则会交换这些元素。重复对列表中未排序部分的遍历,直到对列表进行排序。因为冒泡排序重复地通过列表中未排序的部分,所以它的最坏情况复杂性为O(n²)。 def bubble_sort(arr): def swap(i, j): arr[i], arr[j] = arr[j], arr[i] n = len(arr) swapped = True x = -1 while swapped: swapped = False x = x + 1 for i in range(1, n-x): if arr[i - 1] > arr[i]: swap(i - 1, i) swapped = True return arr 2.选择排序 选择排序也相当简单,优于冒泡排序。如果你要在这两者之间进行选择,那么最好使用默认的“右选择排序”。使用选择排序

V8引擎编译

♀尐吖头ヾ 提交于 2020-08-16 19:01:37
在v8引擎的6.5版本以上,google采用了 GN+Ninja 的编译组合,因此本文主要是基于 GN+Ninjia 的编译方式进行说明。 获取源码 在官方文档中,还特别提示了避免HFS环境下的unicode问题,需要额外配置一下: $ git config --global core.precomposeUnicode true 现在v8在github上面有源码镜像,你只需要 git clone 下来即可。 $ git clone git@github.com:v8/v8.git 获取依赖 Depot_tools 首先 git clone 如下的仓库: $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git Note: 国内用户可以 clone github上面的镜像代码: git clone git@github.com:cybertk/depot_tools.git 然后将 depot_tools 加入你的 PATH 环境变量中(通常会加到 .bashrc 或者 .zshrc 中): export PATH= " $PATH :/path/to/depot_tools" Gclient 取得 depot_tools 之后,需要取得大量编译依赖,google提供了一个比较方便的工具

TeamViewer用户注意:请尽快将其更新为最新版本

痴心易碎 提交于 2020-08-15 15:41:41
TeamViewer是一款主流的远程支持软件,允许用户安全地分析桌面或控制互联网上的其他PC。TeamViewer支持桌面和移动操作系统,包括Windows、macOS、Linux、Chrome OS、iOS、安卓、Windows RT Windows Phone 8和Blackberry。 近日,TeamViewer 团队发布了新的版本,新版本中修复了一个严重的安全漏洞——CVE 2020-13699。远程***者利用该漏洞可以窃取系统口令并最终***系统。 更危险的是该漏洞的利用无需与受害者进行交互,只需要让受害者访问一次恶意web页面就可以,整个***过程几乎完全是自动进行的。 该高风险漏洞是由研究人员Jeffrey Hofmann发现的,漏洞位于TeamViewer 引用定制的URI handler的方式上,***者利用该漏洞可以让软件中继到***者系统的NTLM 认证请求。 简单来说,***者利用web页面的TeamViewer的URI方案可以诱使安装在受害者系统上的应用创建一个到***者控制的远程SMB分析的连接。 因此,就可以触发一个SMB认证***,泄露系统的用户名以及NTMLv2哈希的口令,***者可以利用窃取的凭证来对受害者系统的计算机和网络资源进行认证。 为了成功的利用该漏洞,***者需要在网页上嵌入一个恶意iframe

Fuchsia OS 要取代 Android?小论Google Fuchsia OS的通用性

a 夏天 提交于 2020-08-14 01:05:48
一笔由欧盟开出、面向 Google 的高达 43.4 亿欧元的创纪录罚单,让 Android 操作系统再次成为舆论场上的焦点。欧盟指责 Google 在 Android 上捆绑 Chrome,限制其他厂商对 Android 进行定制,而且还付费推广 Google Search app。Google 当然对此表示抗议,Sundar Pichai 在官网警告称:由于欧盟的决定,Android 未来可能无法保持免费。 然而,Android 未来所面临的问题,可能不仅仅是不再免费那么简单;在彭博社于 7 月 19 日发布的文章话语中,Android 似乎还面临着被取代的命运,继任者是 Google 旗下的另外一款操作系统 Fuchsia OS, 而且甚至已经有了时间表——就在五年内。 不过在雷锋网看来,一切并没有那么容易。 关于 Fuchsia OS 的一些真相 ——Google 的 Flutter SDK 与 Dart 程序语言的通用性 在探讨 Google 的 Flutter SDK 与 Dart的来龙去脉之前,首先要明确一点,自 Fuchsia OS 诞生以后,关于它将要取代 Android 和 Chrome OS 的声音就从来没有停止过,而且基本上变成了月经贴——这在一定程度上说明了外界的一厢情愿,但实质上,Google 官方没有任何关于 Fuchsia OS 要取代

iOS 14 太像 Android ?这好像也没什么不好

假装没事ソ 提交于 2020-08-12 06:30:12
这个 iOS 上早就有了; 这个功能 Android 今年就提供了; 这功能不是 MIUI 最先开始做么; …… 每年 Android 或 iOS 新系统发布时,相似的言论总是层出不穷,刚刚结束的苹果 WWDC 开发者大会也不例外。作为 iOS 7 之后外形变化最大的系统,iOS 14 引入了诸多改动,其中就包括部分大家比较熟悉的功能。 经过多次曝光,桌面小部件功能终于出现在 iPhone 上,这一功能很容易让人联想到之前 Android 上的桌面小部件功能,还有和小程序、快应用类似的 App Clips 功能。 Android 也有类似的情况,Android 10 上的手势操作功能和 MIUI 手势操作极其相似,去年 9to5Google 还发布消息称 Google 正在开发一项名为「Fast Share」的新文件传输功能,实际效果和 iOS 上的 Airdrop(隔空投送)功能十分相似,支持 Android 设备间快速传输文件。 现在已经不仅仅是 Android 和 iOS 相似,小米 MIUI 等 OEM 厂商定制系统在某些功能上也具备相似性,整个智能手机行业在某些功能上均选择了同一个方向。 但,为什么呢? 无非还是行业发展潮流和用户需求一致。 根据国际数据调研机构 IDC 今年 5 月发布的数据,2020 年第一季度,中国智能手机市场出货量约 6,660 万台

现在的开发都要懂测试了,为什么?这一份书单告诉你!

末鹿安然 提交于 2020-08-10 21:54:49
软件测试 是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。 对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。 这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。 人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。 今天推荐一份软件测试相关的书单! 软件测试系列书单 软件测试技术指南

为什么现在的开发都要懂测试了?这一份书单告诉你!

扶醉桌前 提交于 2020-08-04 14:42:20
​ 软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。 对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。 这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。 人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。 今天推荐一份软件测试相关的书单! 软件测试系列书单 ​ 软件测试技术指南

#新闻拍一拍# 现在你可以在《Minecraft》内启动 Windows 95 计算机,并在上面玩 Doom

拜拜、爱过 提交于 2020-07-29 00:56:50
现在你可以在《Minecraft》内启动 Windows 95 计算机,并在上面玩 Doom Minecraft 已经创建一个新的虚拟机电脑 Mod,它允许玩家在 Minecraft 世界中订购计算机部件,并构建一台实际可以启动 Windows 95 和其他各种操作系统的计算机。该 Mod 运用了 VirtualBox 技术。Minecraft 社区一直在尝试使用 VM Computers Mod,有人因此成功地让 Doom 在 Minecraft 内运行。 来源: cnBeta.COM 拍一拍:没准我们就生活在一个”我的世界“中。 马斯克爆料:我的 Twitter 不怕被黑,私信里大多是交换来的表情包 在 7 月 15 日黑客发起的比特币骗局中,超过 100 多位知名人士的 Twitter 账号被入侵,特斯拉公司 CEO 马斯克就是其中之一。马斯克称,“我是说,我们或许能够从我的私信中挑出一些不着边际听起来很糟糕的内容,但是总体上说,我的私信里大多都是交换来的表情包。” 来源: 凤凰网科技 拍一拍:交换表情包可还行?哈哈 Ubuntu Web:基于 Firefox 的 Web 操作系统,旨在替代 Chrome OS Ubuntu Unity Remix 和 Ubuntu Education 的创建者和主要开发者 Rudra Saraswat 计划创建一个新的基于 Web

现在的开发都要懂测试了,为什么?这一份书单告诉你!

穿精又带淫゛_ 提交于 2020-07-27 06:03:57
软件测试 是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。 对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。 这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。 人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。 今天推荐一份软件测试相关的书单! 软件测试系列书单 软件测试技术指南

为什么现在的开发都要懂测试了?这一份书单告诉你!

独自空忆成欢 提交于 2020-07-27 05:54:23
​ 软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。 对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。 这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。 人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。 今天推荐一份软件测试相关的书单! 软件测试系列书单 ​ 软件测试技术指南