长春网站开发推荐网站访问速度优化工具

pingmian/2025/10/8 13:25:34/文章来源:
长春网站开发推荐,网站访问速度优化工具,贵港公司做网站,信阳网站建设汉狮报价插入排序 算法描述#xff1a; 1. 从第一个元素开始#xff0c;该元素可以认为已经被排序 2. 取出下一个元素#xff0c;在已经排序的元素序列中从后向前扫描 3. 如果该元素#xff08;已排序#xff09;大于新元素#xff0c;将该元素移到下一位置 4. 重复步骤 3  1. 从第一个元素开始该元素可以认为已经被排序  2. 取出下一个元素在已经排序的元素序列中从后向前扫描  3. 如果该元素已排序大于新元素将该元素移到下一位置  4. 重复步骤 3直到找到已排序的元素小于或者等于新元素的位置  5. 将新元素插入到该位置后  6. 重复步骤 2~5 现有一组数组 arr [5, 6, 3, 1, 8, 7, 2, 4] [5] 6 3 1 8 7 2 4 //第一个元素被认为已经被排序[5,6] 3 1 8 7 2 4 //6与5比较放在5的右边[356] 1 8 7 2 4 //3与6和5比较都小则放入数组头部[1,3,5,6] 8 7 2 4 //1与3,5,6比较则放入头部[1,3568] 7 2 4[1,356,78] 2 4[12,356,78] 4[12,3456,78] 123456789101112131415123456789101112131415 编程思路双层循环外循环控制未排序的元素内循环控制已排序的元素将未排序元素设为标杆与已排序的元素进行比较小于则交换位置大于则位置不动 function insertSort(arr){var tmp;for(var i1;iarr.length;i){tmp arr[i];for(var ji;j0;j--){if(arr[j-1]tmp){arr[j]arr[j-1];}else{arr[j]tmp;break;}}}return arr }123456789101112131415123456789101112131415 时间复杂度O(n^2) 选择排序 算法描述直接从待排序数组中选择一个最小或最大数字放入新数组中。 [1] 5 6 3 8 7 2 4 [1,2] 5 6 3 8 7 4 [1,2,3] 5 6 8 7 2 4 [1,2,3,4] 5 6 8 7 [1,2,3,4,5] 6 8 7 [1,2,3,4,5,6] 8 7 [1,2,3,4,5,6,7] 8 [1,2,3,4,5,6,7,8] 1234567812345678 编程思路先假设第一个元素为最小的然后通过循环找出最小元素然后同第一个元素交换接着假设第二个元素重复上述操作即可 function selectionSort(array) {var length array.length,i,j,minIndex,minValue,temp;for (i 0; i length - 1; i) {minIndex i;minValue array[minIndex];for (j i 1; j length; j) {//通过循环选出最小的if (array[j] minValue) {minIndex j;minValue array[minIndex];}}// 交换位置temp array[i];array[i] minValue;array[minIndex] temp;}return array }12345678910111213141516171819202122231234567891011121314151617181920212223 时间复杂度O(n^2) 归并排序 算法描述  1. 把 n 个记录看成 n 个长度为 l 的有序子表  2. 进行两两归并使记录关键字有序得到 n/2 个长度为 2 的有序子表  3. 重复第 2 步直到所有记录归并成一个长度为 n 的有序表为止。 5 6 3 1 8 7 2 4[5,6] [3,1] [8,7] [2,4][5,6] [1,3] [7,8] [2,4][5,6,1,3] [7,8,2,4][1,3,5,6] [2,4,7,8][1,2,3,4,5,6,7,8]12345678910111234567891011 编程思路将数组一直等分然后合并 function merge(left, right) {var tmp [];while (left.length right.length) {if (left[0] right[0])tmp.push(left.shift());elsetmp.push(right.shift());}return tmp.concat(left, right); }function mergeSort(a) {if (a.length 1) return a;var mid Math.floor(a.length / 2), left a.slice(0, mid), right a.slice(mid);return merge(mergeSort(left), mergeSort(right)); }12345678910111213141516171819202122231234567891011121314151617181920212223 时间复杂度O(nlogn) 快速排序 算法描述 在数据集之中选择一个元素作为”基准”pivot。所有小于”基准”的元素都移到”基准”的左边所有大于”基准”的元素都移到”基准”的右边。这个操作称为分区 (partition)操作分区操作结束后基准元素所处的位置就是最终排序后它的位置。对”基准”左边和右边的两个子集不断重复第一步和第二步直到所有子集只剩下一个元素为止。 5 6 3 1 8 7 2 4pivot | 5 6 3 1 9 7 2 4 | storeIndex5 6 3 1 9 7 2 4//将5同6比较大于则不更换 | storeIndex3 6 5 1 9 7 2 4//将5同3比较小于则更换|storeIndex3 6 1 5 9 7 2 4//将5同1比较小于则不更换|storeIndex ...3 6 1 4 9 7 2 5//将5同4比较小于则更换|storeIndex3 6 1 4 5 7 2 9//将标准元素放到正确位置| storeIndex pivot1234567891011121314151617181920212223242526272812345678910111213141516171819202122232425262728 上述讲解了分区的过程然后就是对每个子区进行同样做法 function quickSort(arr){if(arr.length1) return arr;var partitionIndexMath.floor(arr.length/2);var tmparr[partitionIndex];var left[];var right[];for(var i0;iarr.length;i){if(arr[i]tmp){left.push(arr[i])}else{right.push(arr[i])}}return quickSort(left).concat([tmp],quickSort(right)) }123456789101112131415123456789101112131415 上述版本会造成堆栈溢出所以建议使用下面版本 原地分区版主要区别在于先进行分区处理将数组分为左小右大 function quickSort(arr){function swap(arr,right,left){var tmp arr[right];arr[right]arr[left];arr[left]tmp;}function partition(arr,left,right){//分区操作var pivotValuearr[right]//最右面设为标准var storeIndexleft;for(var ileft;iright;i){if(arr[i]pivotValue){swap(arr,storeIndex,i);storeIndex;}}swap(arr,right,storeIndex);return storeIndex//返回标杆元素的索引值}function sort(arr,left,right){if(leftright) return;var storeIndexpartition(arr,left,right);sort(arr,left,storeIndex-1);sort(arr,storeIndex1,right);}sort(arr,0,arr.length-1);return arr; }123456789101112131415161718192021222324252627123456789101112131415161718192021222324252627 时间复杂度O(nlogn) 冒泡排序 算法描述  1. 比较相邻的元素。如果第一个比第二个大就交换他们两个。  2. 对每一对相邻元素作同样的工作从开始第一对到结尾的最后一对。在这一点最后的元素应该会是最大的数。  3. 针对所有的元素重复以上的步骤除了最后一个。  4. 持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较。5. 5 6 3 1 8 7 2 4[5 6] 3 1 8 7 2 4 //比较5和65 [6 3] 1 8 7 2 45 3 [6 1] 8 7 2 45 3 1 [6 8] 7 2 45 3 1 6 [8 7] 2 45 3 1 6 7 [8 2] 45 3 1 6 7 2 [8 4]5 3 1 6 7 2 4 8 // 这样最后一个元素已经在正确位置所以下一次开始时候就不需要再比较最后一个 123456789101112131415161718123456789101112131415161718 编程思路外循环控制需要比较的元素比如第一次排序后最后一个元素就不需要比较了内循环则负责两两元素比较将元素放到正确位置上 function bubbleSort(arr){var lenarr.length;for(var ilen-1;i0;i--){for(var j0;ji;j){if(arr[j]arr[j1]){var tmp arr[j];arr[j]arr[j1];arr[j1]tmp}}}return arr; }1234567891011121312345678910111213 时间复杂度O(n^2) 参考资料 排序效果  常见排序算法  排序算法 维基百科

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设集团有限公司网站首页济南建设工程交易网官网

一、海量数据实时去重说明 借助redis的Set,需要频繁连接Redis,如果数据量过大, 对redis的内存也是一种压力;使用Flink的MapState,如果数据量过大, 状态后端最好选择 RocksDBStateBackend; 使用布隆过滤器,…

铁岭做网站的网站建设需要哪些功能

​ 结构体 结构体是一些值的集合,这些值称为成员变量,结构的成员可以是标量、数组、指针,甚至是其他结构体。 成员名可以与程序中其它变量同名,互不干扰。 结构体的定义 (struct结构名{}) struct books {int a;c…

做织梦网站的心得体会长春火车站时刻表

乾明 发自 凹非寺 量子位 报道 | 公众号 QbitA耗费2个多亿,耗时2年多,连一个可用的网站或者APP都没有交付出来。想要完工?那就再交1000万美元。这件事的受害方、美国汽车租赁公司赫兹(Hertz)一怒之下, 将顶级咨询公司埃森哲(Accen…

SEO参与网站建设注意WordPress抓去微信

我叫范华万,今天22岁,来自于福建省。目前在闽江学院就学。我学的是软件工程软件服务开发专业,能从事网站设计、java工程师、ps技术、c、数据库管理。本人性格乐观、开朗,有上进心、进取心,对学习认真负责,I…

网站建设公司天强科技个人做网站可以盈利么

文章目录 一、验证码的处理1、验证码概述1、2 什么是图片验证码?1、2 验证码的作用1、3 图片验证码使用场景1、4 图片验证码的处理方案 2、图片在网页页面中的形式2、1 如何进行图片形式的转化 3、打码平台 二、代理的使用2、1 付费代理2、1、1 找付费代理服务站点2…

镇江网站关键字优化如何扬中网站建设价格

修饰 实体属性or实体类 //枚举值:ALWAYS,NON_NULL,NON_ABSENT,NON_EMPTY,NON_DEFAULT,CUSTOM,USE_DEFAULTS JsonInclude(Include.NON_EMPTY)//将该标记放在属性上,如果该属性为NULL则不参与序列化 //如果放在类上边,那对这个类的全部属性起作用 Inclu…

南沙定制型网站建设网站建设特色

题目链接 这个挑战赛的 F F F是我出的,最后 zhoukangyang 爆标了。。。orzorz 记所有有颜色的边的属性集合 S S S 。 首先在外层容斥,枚举 S ∈ [ 0 , 2 w ) S\in [0,2^w) S∈[0,2w),计算被覆盖的的边中不包含 S S S 中属性&#xff0c…

百度移动网站建设有几种喀喇沁旗网站建设公司

354. 俄罗斯套娃信封问题 - 力扣(LeetCode) 给你一个二维整数数组 envelopes ,其中 envelopes[i] [wi, hi] ,表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一…

成都网站制作龙兵科技照片合成制作app

http://www.bvbcode.com/app/downloadfile1?type2&down_key684b999e03e30a3e29cf1ada84d62b55&fileid1674791&softkeysul6vt9o&t1578129576

pythone网站开发昆明建站专家

目录 一、java常见问题JDK和JRE的区别是什么?Java中的String类是可变的还是不可变的?Java中的equals方法和hashCode方法有什么关系?Java中什么是重载【Overloading】?什么是覆盖【Overriding】?它们有什么区别&#xf…

24小时自助建站电子商务论文8000字

一、排序栗子 注: 属性字段需要进行转换,如String类型或者Number类型 //升序排序 首元素(element1)在前 降序则(element1)元素在后 data data.sort((element1, element2) >element1.属性 - element2.属性 ); 二、代码 Page({/*** 页面的初始数据*/data: {user:…

手机网站的优缺点深圳住房建设部官方网站

1、前言 vcpk是是一款开源的c/c库管理工具,尤其是在windows平台,可以帮助我们很好的管理各种依赖包。 在windows环境做c/c开发的人应该都深有体会,有时候编译需要下载一堆依赖库,导致搭建编译环境特别麻烦。但是,通过v…

公司网站建设与维护方案wordpress主题名字

这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格(水平)考试,11月4号就要考试,因此8天长假绝不能荒废,必须要好好利用起来。现在将各个核心知识点一一进行提炼并做记录。 所…

动漫网站开发 sh框架dede网站版权信息修改

1.案例7.安安的通讯助手 目标 组件设计 素材准备 所有组件的说明及属性设置(1) 所有组件的说明及属性设置(2) 所有组件的说明及属性设置(3)布局小技巧 行为逻辑设计 自动回复短信 短信收发器 组件 记录已收…

昆明网站设计方案怎么给网站做动图

(73)封装一个widget 醒目:必须在web环境下使用,无论是python的web.py或者是通过http访问网站环境,都可以,但纯本地是不可行的。 首先,什么是widget? 简单来说,就是一个do…

网站开发与设计现状网站seo优化怎么做

多进程并发服务器 多线程并发服务器 I/O多路转接服务器 epoll的工作模式 1 多进程并发服务器 在多进程并发服务器中,若有用户请求到达,服务器将会调用fork()函数,创建一个子进程,之后父进程将继续调用accept(),而子进…

网站套利怎么做全网营销课程

55. 关于刑法,表述正确的有:A.对于累犯不适用缓刑B.某甲犯故意杀人罪,但是有可能被适用缓刑C.已满十四周岁不满十六周岁的人不负刑事责任D.紧急避险超过必要限度造成不应有的损害的,应当负刑事责任56. 甲在回家途中发现乙正持刀追…

网站建设目录结构工地接活应该去哪个平台

一、多个真实用户对接口的压力测试1. 获取多个真实用户的token的两种方法:1)第一种:让开发帮忙生成多个token(多个用户账户生成的token),导出为csv格式的文件(以下步骤均以该方法为基础)2)第二种:自己设置多个用户账户和密码&…

英文网站建设 淮安中国纪检监察报社社长

什么是Azure Bastion Azure Bastion 是一个提供安全远程连接到 Azure 虚拟机(VM)的服务。传统上,访问 VM 需要使用公共 IP 或者设立 VPN 连接,这可能存在一些安全风险。Azure Bastion 提供了一种更安全的方式,它是一个…

delphi网站开发东莞企业网站多少钱

2017-03-07在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片。也就是说***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一长串就是具体的文件信息。data:image/jpg;base64则是指的文件头。我们可以…