选择排序算法简介选择排序大致的思路是找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推。Python 代码示例def findSmallest(arr): smallest = arr[0] // 存储最小的值 smallest_index = 0 // 存储最小元素的索引 for i in range(1, len(arr)): if arr[i] smallest: smallest = arr[i] smallest_index = i return smallest_index de
admin 2023-11-17 49
冒泡排序的英文是bubble sort,它是一种基础的交换排序。正是因为这种排序算法的每一个元素都可以像水中的小气泡一样,根据自身大小,一点一点地向着数组的一侧移动。有8个数字组成一个无序数列 [7, 5, 2, 3, 1],希望按照从小到大的顺序对其进行排序。按照冒泡排序的思想,我们要把相邻的元素两两比较,当一个元素大于右侧相邻元素时,交换它们的位置,当一个元素小于或等于右侧相邻元素时,位置不变。代码实现:function sort(arr){ for(let i=0; i arr.length; i++){ for(let j=0; j arr.length-i-1; j++)
admin 2023-11-02 59
二分查找法 Python 实现:def binary_search(list, item): low = 0 high = len(list)—1 while low = high: mid = (low + high) guess = list[mid] if guess == item: return mid if guess item: high = mid - 1 else: low = mid + 1 return None my_list = [1, 3, 5, 7, 9]
admin 2023-10-23 67
在 JavaScript 中直接输出 0.1 + 0.2 结果是 0.30000000000000004。原因如下:JavaScript 使用 Number类型表示数字(整数和浮点数),计算机遵循IEEE 754标准,所有语言都会有这个问题。通常用64位来表示一个数字:第0位:符号位,0表示正数,1表示负数(s);第1位到第11位:储存指数部分(e);第12位到第63位:储存小数部分(即有效数字)f。十进制转换为二进制方法是,小数本身乘以2,取整数位作为二进制表示位,然后取其小数位参与计算(乘以2),如此循环往复,只至小数位乘以2的结果为零。结果0.1和0.2的二进制,后面无限循环多余的数将会
admin 2023-07-17 310
\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下匹配中文字符的正则表达式: [\u4e00-\u9fa5]或许你也需要匹配双字节字符,中文也是双字节的字符匹配双字节字符(包括汉字在内):[^\x00-\xff]注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)更多常用正则表达式匹配规则:英文字母:[a-zA-Z]数字:[0-9]匹配中文,英文字母和数字及_:^[\u4e00-\u9fa5_a-zA-Z0-9]+$同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}^[\w\u4E00-\u9FA5\uF900-\u
admin 2021-12-23 正则表达式 468
进制 (system of numeration)进制也就是进位制。进行加法运算时逢X进一(满X进一),进行减法运算时借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。十进制(Decimalism)使用的数字都是由 0~9 共十个数字组成的,逢十进一,也因为只有 0~9 共十个数字,所以叫做十进制。 人类算数采用十进制,可能跟人类有十根手指有关。 数位有一定的意义,从右往左分别表示个位、十位、百位、千位……二进制(Binary)从十进制计数法类推,使用的数字只有 0、1两种,这就是二进制。例如,数字 0、
admin 2021-12-23 456
1,为什么要画流程图很多人拿到需求就火急火燎的开始画原型,然后画着画着觉得有些地方没有考虑到,又回头去改,如果在画原型之前,你能将自己的业务流程想好,用户的操作流程想好,页面跳转想清楚,你就能少做很多无用功,达到事半功倍的效果。2,什么是流程图流程图是表示算法、工作流或流程的一种框图表示,它以不同类型的框代表不同种类的步骤,每两个步骤之间则以箭头连接。这种表示方法便于说明解决已知问题的方法。流程图在分析、设计、记录及操控许多领域的流程或程序都有广泛应用。3,流程图常用元素定义4,一般流程图有三种结构:顺序结构、选择结构、循环结构5,常用的三种流程图产品中设计的流程图主要有三种,业务路程图(泳道
admin 2020-03-13 1684
一,推荐方法下单渠道1位+支付渠道1位+业务类型1位+时间信息4位+下单时间的Unix时间戳后8位(加上随机码随机后的数字)+用户user id后4位。然后你会说,这样算下来就订单号就19位了啊,一点都不精简啊,不好记不好念不好输的。但我说的上面的这些业务标记,你不一定要全部加上啊。你看淘宝/天猫那么大的订单量,16位订单号就搞定了。细心的网友已经发现了,订单号的后4位是取自用户user id的后四位,前12位中有10位可能是由Unix时间戳加随机规则生成的。二,从用户体验和数据库优化的角度来看1.利用数据库主键值产生一个自增长的订单号(订单号即数据表的主键)2.日期+自增长数字的订单号(比如
admin 2019-07-27 1824
1. 数组是计算机编程世界里最常见的数据结构。任何一种编程语言都包含数组,只是形式上 略有不同罢了。JavaScript数组的标准定义是:一个存储元素的线性集合(collection),元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量。JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数。然而,这些数字索引在内部被转换为字符串类型,这是因为 JavaScript 对象中的属性名必须是字符串。 2. 创建数组 最简单的方式是通过 [] 操作符声明一个数组变量: var numbers = []; var numbers =
admin 2019-06-19 825
为什么需要链表 数组不总是组织数据的最佳数据结构,在很多编程语言中,数组的长度是固定的,所以当数组已被数据填满时,再要加入新的元素就会非常困难。在数组中,添加和删除元素也很麻烦,因为需要将数组中的其他元素向前或向后平移,以反映数组刚刚进行了 添加或删除操作。然而,JavaScript 的数组并不存在上述问题,因为使用 split() 方法不需要再访问数组中的其他元素了。 JavaScript 中数组的主要问题是,它们被实现成了对象,与其他语言(比如 C++ 和 Java) 的数组相比,效率很低,如果你发现数组在实际使用时很慢,就可以考虑使用链表来替代它。除了对数据的随机访问,链表几乎可
admin 2019-06-18 754
1. JavaScript 正则表达式API 共有 6 个,字符串实例 4 个,正则实例 2 个:String#search String#split String#match String#replace RegExp#test RegExp#exec 字符串对象正则方法 字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。 ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。String.prototype.match 调用 RegExp
admin 2019-06-12 正则表达式 991
替换和分组:替换使用 | 字符来允许在两个或多个替换选项之间进行选择。/^Chapter|Section [1-9][0-9]{0,1}$/上面的正则表达式要么匹配行首的单词 Chapter,要么匹配行尾的单词 Section 及跟在其后的任何数字。如果输入字符串是 Chapter 22,那么上面的表达式只匹配单词 Chapter。如果输入字符串是 Section 22,那么该表达式匹配 Section 22。可以使用括号来限制替换的范围,即,确保它只应用于两个单词 Chapter 和 Section。/^(Chapter|Section) [1-9][0-9]{0,1}$/尽管这些表达式正常
admin 2019-06-04 正则表达式 915
AES是一种区块加密标准算法 Advanced Encryption Standard,它的提出是为了升级替换原有的DES加密算法。因此它的安全强度高于DES算法。但不应片面理解,系统和数据的安全不仅与应用的加密算法有关,更与加密应用方案有关。和DES算法一样,AES也属于对称加密算法,对密钥的存储与保护,直接决定了整个系统的安全。 AES最常见的有3种方案,分别是AES-128、AES-192和AES-256,它们的区别在于密钥长度不同,AES-128的密钥长度为16bytes(128bit / 8),后两者分别为24bytes和32bytes。密钥越长,安全强度越高,但伴随运算轮数的增
admin 2018-10-23 989
铁路图(railroad diagram)规则: 1.从左边界开始沿着轨道去到右边界。2.沿途,你将在圆框中遇到的是字面量,在方块中遇到的是规则或者描述。3.任何沿着轨道能走通的序列都是合法的。4.任何不能沿着轨道走通的序列都是非法的。5.每个末端只有一个竖条的铁路图允许在任何一对标记中间插入空白。而在末端有两个竖条的铁路图是不允许的。语法图(Syntax diagrams )又叫铁路图(railroad diagrams)是描述形式文法的一种方式。它是巴科斯范式或扩展巴科斯范式的图形化表示。最早使用语法图的书包括Niklaus Wirth写的“Pascal User Manual”(语法
admin 2016-10-13 1539
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。算法步骤:1 从数列中挑出一个元素,称为 “基准”(pivot),2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准
admin 2016-08-16 730
1. 加密方法可以分为两大类。一类是单钥加密(private key cryptography),还有一类叫做双钥加密(public key cryptography)。前者的加密和解密过程都用同一套密码,后者的加密和解密过程用的是两套密码。历史上,人类传统的加密方法都是前一种,比如二战期间德军用的Enigma电报密码。莫尔斯电码也可以看作是一种私钥加密方法。2. 在单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要。一旦密钥泄漏,密码也就被破解。3. 在双钥加密的情况下,密钥有两把,一把是公开的公钥,还有一把是不公开的私钥。双钥加密的原理如下:a) 公钥和私钥是一一对应的关系,有一把公
admin 2015-07-31 787
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。“基础ASCII码” 使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。“扩展ASCII” 使用8 位二
admin 2015-05-26 722
作者: 阮一峰日期: 2007年10月28日今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料。这个问题比我想象的复杂,午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。我尽量写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每
admin 2015-05-21 699
Jone
在什么样的花园里面,挖呀挖呀挖
种什么样的种子,开什么样的花
随机推荐
选择排序
JavaScript console 的用法
Node.js MySQL 连接池和事务
WordPress 分页
WordPress 评论表单函数 comment_form()
WordPress RESTful API 路由代码结构
macOS 生成 icns 图标
TypeScript 和 Koa 实践
RESTful API 执行 delete 返回204无法获取 Body
Rollup 教程

微信联系我

夜间模式切换
回到顶部