[{"data":1,"prerenderedAt":66},["ShallowReactive",2],{"article-23":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":16,"status":17,"is_open":17,"is_deleted":14,"is_top":14,"is_recommend":14,"create_time":18,"update_time":19,"image_id":20,"url":13,"member_id":14,"cate_name":21,"prev":22,"next":25,"tags":28,"words":38,"read_time":17,"comments":14,"cover":39,"relevant":40},23,"JavaScript常见算法排序之冒泡排序","Javascript,排序,算法","冒泡排序是一种简单的排序算法。 它重复地走访过要排序的数列，一次比较两个元素，如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换，也就是说该数列已经排序完成。",2,"##### 1、算法原理\n\n冒泡排序是一种简单的排序算法。 它重复地走访过要排序的数列，一次比较两个元素，如果它们的顺序错误就把它们交换过来。\n\n走访数列的工作是重复地进行直到没有再需要交换，也就是说该数列已经排序完成。\n\n##### 2、算法流程\n\n（1）比较相邻的元素。 如果第一个比第二个大，就交换它们两个。\n\n（2）对每一对相邻元素作同样的工作，从开始第一对到结尾的最后一对。 在这一点，最后的元素应该会是最大的数。\n\n（3）针对所有的元素重复以上的步骤，除了最后一个。\n\n（4）持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较\n\n##### 3、实例分析\n\n以数组 arr = [5, 1, 4, 2, 8] 为例说明：\n\n第一次外循环\n``` bash\n( 5 1 4 2 8 ) → ( 1 5 4 2 8 )， 5 > 1 交换位置\n\n( 1 5 4 2 8 ) → ( 1 4 5 2 8 )， 5 > 4 交换位置\n\n( 1 4 5 2 8 ) → ( 1 4 2 5 8 )， 5 > 2 交换位置\n\n( 1 4 2 5 8 ) → ( 1 4 2 5 8 )， 5 \u003C 8 位置不变\n```\n第二次外循环（除开最后一个元素8，对剩余的序列）\n``` bash\n( 1 4 2 5 8 ) → ( 1 4 2 5 8 )， 1 \u003C 4 位置不变\n\n( 1 4 2 5 8 ) → ( 1 2 4 5 8 )， 4 > 2 交换位置\n\n( 1 2 4 5 8 ) → ( 1 2 4 5 8 )， 4 \u003C 5 位置不变\n```\n第三次外循环（除开已经排序好的最后两个元素，可以注意到上面的数组其实已经排序完成，但是程序本身并不知道，\n\n所以还要进行后续的循环，直到剩余的序列为 1）\n``` bash\n( 1 2 4 5 8 ) → ( 1 2 4 5 8 )\n\n( 1 2 4 5 8 ) → ( 1 2 4 5 8 )\n```\n第四次外循环（最后一次）\n``` bash\n( 1 2 4 5 8 ) → ( 1 2 4 5 8 )\n```\n##### 4、代码实现\n\n``` javaScript\nfunction bubbleSort(array){\n   var temp;\n   for(var i = array.length; 0 \u003C i; i --){\n       for(var j = 0; j \u003C i; j ++){\n           if (array[j] > array[j + 1]) {\n          temp         = array[j];\n          array[j]     = array[j + 1];\n          array[j + 1] = temp;\n      }\n       }\n    }\n    return array;\n}\n```\n\n\n\n\n \n",null,0,589,"",1,"2019-01-17 22:51:49","2026-04-19 15:14:33",134,"PHP",{"id":23,"title":24},22,"JavaScript常见排序之快速排序",{"id":26,"title":27},24,"利用three.js在网页嵌入dae类型的3d模型",[29,32,35],{"id":30,"name":31},42,"前端",{"id":33,"name":34},43,"Javascript",{"id":36,"name":37},45,"冒泡",653,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002F41\u002F9b90b419601d3b7855b4df7be19c5e.jpg",[41,46,51,56,61],{"id":42,"title":43,"create_time":44,"description":45},93,"PHP执行Python脚本解压，压缩文件夹操作","2020-08-06 14:59:05","PHP是有解压缩类文件的，但在实际项目中，用户方使用Python脚本压缩，很容易出现中文解压乱码，导致文件内容丢失的情况，本文主要介绍PHP执行Python脚本解压缩出现的问题以及解决方法",{"id":47,"title":48,"create_time":49,"description":50},92,"PHP对图片的处理","2020-07-30 15:53:38","图片处理函数功能：缩放、剪切、相框、水印、锐化、旋转、翻转、透明度、反色处理并保存历史记录的思路：当有图片有改动时自动生成一张新图片",{"id":52,"title":53,"create_time":54,"description":55},96,"PHP中字符串跟0做比较永远是true","2021-02-04 16:16:27","最近在项目中做数据对比的功能，发现一个特殊的情况，0跟任何字符串做比较永远返回true，特意了解了一下。",{"id":57,"title":58,"create_time":59,"description":60},13,"Win系统下配置PHP链接Oracle","2019-01-17 22:23:36","该文章内容主要介绍window系统下，php连接oracle的配置。",{"id":62,"title":63,"create_time":64,"description":65},103,"面向对象三大特性五大原则 + 低耦合高内聚[转载]","2021-10-31 23:18:58","面向对象的三大特性是\"封装、\"多态\"、\"继承\"，五大原则是\"单一职责原则\"、\"开放封闭原则\"、\"里氏替换原则\"、\"依赖倒置原则\"、\"接口分离原则\"。",1783431670016]