当前位置: 首页 > news >正文

css特效代码大全网站推广seo是什么

css特效代码大全,网站推广seo是什么,网站引导页模板,东莞建设网公租房信息1. arr.sort(fn) // 升序排序arr.sort((a, b) > a - b);// 降序排序arr.sort((a, b) > b - a); 2. 冒泡排序 冒泡排序-升序原理: eg: [1, 6, 7, 9, 10, 3, 4, 5, 2] 1) 先遍历第一遍数组, 前一个数字大于后一个数字, 就交换位置, 最后最大值10放在数组的最后, 此时是…

1. arr.sort(fn)

// 升序排序arr.sort((a, b) => a - b);// 降序排序arr.sort((a, b) => b - a);

2. 冒泡排序

冒泡排序-升序原理:

eg: [1, 6, 7, 9, 10, 3, 4, 5, 2]

1) 先遍历第一遍数组, 前一个数字大于后一个数字, 就交换位置, 最后最大值10放在数组的最后, 此时是 [1, 6, 7, 9, 3, 4, 5, 2, 10];

for (let j = 0; j < arr.length-1; j++) {
            preNum = arr[j];
            const nextNum = arr[j + 1];
            if (preNum > nextNum) { // 左边的数字大于右边的数字,交换位置
                // 数字小的往前挪, 数字大的往后挪
                arr[j] = nextNum;
                arr[j + 1] = preNum;
            }
        }

2) 第二遍就是: 前一个数字大于后一个数字, 就交换位置, 最后第二大的值放在数组的倒数第二位, 此时是 [1, 6, 7, 3, 4, 5, 2, 910];

for (let j = 0; j < arr.length-2; j++) {
            preNum = arr[j];
            const nextNum = arr[j + 1];
            if (preNum > nextNum) { // 左边的数字大于右边的数字,交换位置
                // 数字小的往前挪, 数字大的往后挪
                arr[j] = nextNum;
                arr[j + 1] = preNum;
            }
        }

3) 第三遍就是: 前一个数字大于后一个数字, 就交换位置, 最后第三大的值放在数组的倒数第三位, 此时是 [1, 6, 3, 4, 5, 2, 7, 9, 10];

for (let j = 0; j < arr.length-3; j++) {...}

以此类推...

4) 最后一遍: 前一个数字大于后一个数字, 就交换位置, 最后第2小的值放在数组的第2位, 此时是 [1, 2, 3, 4, 5, 6, 7, 9, 10]

for (let j = 0; j < 1; j++) {...}

5) 因为for (let j = 0; j < x; j++) {...}; 推导可知x的值范围是(0, arr.length-1];

所以:

for (let j = arr.length - 1; i > 0; i--) {

        for (let j = 0; j < i; j++) {...}

}



排序.js:14 第1次计算:

  1. (9) [1, 6, 7, 9, 3, 4, 5, 2, 10]

排序.js:14 第2次计算:

  1. (9) [1, 6, 7, 3, 4, 5, 2, 9, 10]

排序.js:14 第3次计算:

  1. (9) [1, 6, 3, 4, 5, 2, 7, 9, 10]

排序.js:14 第4次计算:

  1. (9) [1, 3, 4, 5, 2, 6, 7, 9, 10]

排序.js:14 第5次计算:

  1. (9) [1, 3, 4, 2, 5, 6, 7, 9, 10]

排序.js:14 第6次计算:

  1. (9) [1, 3, 2, 4, 5, 6, 7, 9, 10]

排序.js:14 第7次计算:

  1. (9) [1, 2, 3, 4, 5, 6, 7, 9, 10]

排序.js:14 第8次计算:

  1. (9) [1, 2, 3, 4, 5, 6, 7, 9, 10]

最后一次不用计算了, 最小值就是1

[1, 2, 3, 4, 5, 6, 7, 9, 10]

冒泡排序--普通双层遍历循环版本:

// 冒泡排序-升序
const bubleSort = (arr) => {let preNum = null;// 之所以i>0, 因为排序交互位置到最后两个的时候, 只需要比较一次就行了, 最后那个数字不必比较了for (let i = arr.length - 1; i > 0; i--) {for (let j = 0; j < i; j++) {preNum = arr[j];const nextNum = arr[j + 1];if (preNum > nextNum) { // 左边的数字大于右边的数字,交换位置// 数字小的往前挪, 数字大的往后挪arr[j] = nextNum;arr[j + 1] = preNum;}}}return arr;
}// 冒泡排序-降序
const bubleSort = (arr) => {let preNum = null;// 之所以i>0, 因为排序交互位置到最后两个的时候, 只需要比较一次就行了, 最后那个数字不必比较了for (let i = arr.length - 1; i > 0; i--) {for (let j = 0; j < i; j++) {preNum = arr[j];const nextNum = arr[j + 1];if (preNum < nextNum) { // 左边的数字小于右边的数字,交换位置// 数字大的往前挪, 数字小的往后挪arr[j] = nextNum;arr[j + 1] = preNum;}}}return arr;
}

冒泡排序-升序-递归

// 冒泡排序-升序
const bubleSort0 = (arr, i = arr.length - 1) => {let preNum = null;// 之所以i>0, 因为排序交互位置到最后两个的时候, 只需要比较一次就行了, 最后那个数字不必比较了for (let j = 0; j < i; j++) {preNum = arr[j];const nextNum = arr[j + 1];if (preNum > nextNum) { // 左边的数字大于右边的数字,交换位置// 数字小的往前挪, 数字大的往后挪arr[j] = nextNum;arr[j + 1] = preNum;}}i--;if (i > 0) return bubleSort0(arr, i);return arr
}// 冒泡(升序排序)
var arr = bubleSort0([1, 6, 7, 9, 10, 3, 4, 5, 2])
console.log(arr, '冒泡排序-升序-递归');// 冒泡排序-降序
const bubleSort0 = (arr, i = arr.length - 1) => {let preNum = null;// 之所以i>0, 因为排序交互位置到最后两个的时候, 只需要比较一次就行了, 最后那个数字不必比较了for (let j = 0; j < i; j++) {preNum = arr[j];const nextNum = arr[j + 1];if (preNum < nextNum) { // 左边的数字小于右边的数字,交换位置// 数字大的往前挪, 数字小的往后挪arr[j] = nextNum;arr[j + 1] = preNum;}}i--;if (i > 0) return bubleSort0(arr, i);return arr
}// 冒泡(降序排序)
var arr = bubleSort0([1, 6, 7, 9, 10, 3, 4, 5, 2])
console.log(arr, '冒泡排序-升序-递归');

3.  选择排序

eg: [6, 7, 9, 10, 3, 4, 5, 2, 1]

当i等于0时:

1) min=第一个元素6, 和数组其余的元素比较, 原本的第一位元素6在if (nextNum < preNum){...}中6和第一个比6小的元素3交换了位置,此时是[3, 7, 9, 10, 6, 4, 5, 2, 1];

2) min变成3,  比3小的第一个元素是2, 此时是[2, 7, 9, 10, 6, 4, 5, 3, 1];

3) min变成2, 比2小的元素是1, 所以交换位置, 此时是[1, 7, 9, 10, 6, 4, 5, 3, 2];

5) 往右数没有比1小的元素了, 结束

当i等于1时:

1)  min=数组第二个元素7, 和第三个及之后的元素比较, 第一个比7小的元素是6, 交换位置, 此时是: [1, 6, 9, 10, 7, 4, 5, 3, 2];

2) min变成6, 比6小的第一个元素是4, 此时是[1, 4, 9, 10, 7, 6, 5, 3, 2];

3) min变成4, 比4小的第一个元素是3, 此时是[1, 3, 9, 10, 7, 6, 5, 4, 2];

4) min变成3, 比3小的第一个元素是2, 此时是[1, 2, 9, 10, 7, 6, 5, 4, 3];

5) 往右数没有比2小的元素了, 结束

当i等于2时:

1) min等于数组第三个元素9, 和第四个及之后的元素比较, 第一个比9小的元素是7, 此时是[1, 2, 7, 10, 9, 6, 5, 4, 3];

2) min变成7, 比7小的第一个元素是6, 此时是[1, 2, 6, 10, 9, 7, 5, 4, 3];

3) min变成6, 比7小的第一个元素是5, 此时是[1, 2, 5, 10, 9, 7, 6, 4, 3];

4) min变成5, 比7小的第一个元素是4, 此时是[1, 2, 4, 10, 9, 7, 6, 5, 3];

5) min变成4, 比4小的第一个元素是3, 此时是[1, 2, 3, 10, 9, 7, 6, 5, 4];

5) 往右数没有比3小的元素了, 结束

以此类推...

所以:

// 小的越来越靠左, 以此类推

/**

* 选择排序:

原理: 给每个位置选择当前元素最小的;

* 比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,

* 直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。

* 选择排序的本质: 每一次大循环就是选出最小的那个值,在选最小值的过程你可以通过下标记录

* 也可以每次交换值都可以

*/

选择排序-双层遍历版本:

// 选择排序-升序
const selectSort = arr => {const len = arr.length;for (let i = 0; i < len; i++) {let min = arr[i];for (let j = i + 1; j < len; j++) {const nextNum = arr[j];const preNum = min;// 如果当前的值比记录的最小值还要小, 就交换这2个数字的位置if (nextNum < preNum) {arr[j] = preNum;min = nextNum; // min被赋值为比较出来的较小值continue;}}arr[i] = min; // 因为min在内循环被修改了, 所以arr[i]的值应该在跳出内循环后在它自身循环体被修改}return arr
}// 选择(升序排序)
var arr = selectSort([6, 7, 9, 10, 3, 4, 5, 2, 1])
console.log(arr, '选择排序-升序');

选择排序-递归+for循环

// 选择排序
const selectSort0 = (arr, i=0) => {const len = arr.length;let min = arr[i];for (let j = i + 1; j < len; j++) {const nextNum = arr[j];const preNum = min;console.log(preNum, 'preNum=====')// 如果当前的值比记录的最小值还要小, 就交换这2个数字的位置if (nextNum < preNum) {arr[j] = preNum;min = nextNum; // min被赋值为比较出来的较小值continue;}}arr[i] = min; // 因为min在内循环被修改了, 所以arr[i]的值应该在跳出内循环后在它自身循环体被修改i++;if(i<=2) selectSort0(arr, i);return arr
}// 选择(升序排序)
var arr = selectSort0([6, 7, 9, 10, 3, 4, 5, 2, 1])
console.log(arr, '选择排序-升序00000');

4. 快速排序:

如果数组的元素个数小于2个, 返回原数组;

如果数组元素个数大于等于2个:

1) flag = 一个标尺元素(一般是第一个元素); left=flag左边的元素组成的数组(初始化); right=flag右边的元素组成的数组(初始化);

2) 遍历arr, 比flag小的push进left数组, 比flag大的push进right数组

3) 将left和right数组执行上述(1)和(2)步骤

4) 使用concat拼接left数组, flag, right数组

快速排序-for循环+递归+concat

// 快速排序
const quickSort = (arr) => {const len = arr.length;if (len < 2) {return arr;}// 选择标尺元素let flag = arr[0];let left = [];let right = [];let preNum = null;// 因为flag取的是下标0的元素, 所以遍历从下标1开始for (let i = 1; i < len; i++) {preNum = arr[i];if (preNum < flag) {// 比flag小的放左边left.push(preNum);}else {// 比flag大的放右边right.push(preNum);}}// 进行递归return quickSort(left).concat(flag, quickSort(right));
}

快速排序-划分交换in-place

// 快速排列in-place(交换)--划分交换排序:
const quickInPlaceSort = (arr) => {// 数组指定两个位置进行值交换let exchange = (arr, i, j) => {const preNum = arr[i];const nextNum = arr[j];arr[i] = nextNum;arr[j] = preNum;}// 完成一次划分交换let findCenter = (arr, leftIdx, rightIdx) => {let flag = arr[leftIdx];let centerIdx = leftIdx + 1;for (let i = centerIdx; i <= rightIdx; i++) {if (arr[i] < flag) {exchange(arr, centerIdx, i); // 交换位置centerIdx++; // 交换的下标+1}}exchange(arr, leftIdx, centerIdx - 1);return centerIdx;}// 递归排序let sort = (arr, leftIdx, rightIdx) => {if (leftIdx < rightIdx) {let center = findCenter(arr, leftIdx, rightIdx);sort(arr, leftIdx, center - 1);sort(arr, center, rightIdx);}}sort(arr, 0, arr.length - 1);return arr;
}
var arr = quickInPlaceSort([1, 6, 7, 9, 10, 3, 4, 5, 2]);
console.log(arr, '快速排序-升序-划分交换'); // [1, 2, 3, 4, 5, 6, 7, 9, 10] '快速排序-升序-划分交换'
console.log('-----------------------------------------');


文章转载自:
http://incurment.c7624.cn
http://monkship.c7624.cn
http://bootlick.c7624.cn
http://politicize.c7624.cn
http://shovelnose.c7624.cn
http://juno.c7624.cn
http://tongued.c7624.cn
http://destocking.c7624.cn
http://sporoduct.c7624.cn
http://acinaciform.c7624.cn
http://derbyshire.c7624.cn
http://heredity.c7624.cn
http://rawhead.c7624.cn
http://retrieval.c7624.cn
http://reroute.c7624.cn
http://faintheartedly.c7624.cn
http://methantheline.c7624.cn
http://anglicanism.c7624.cn
http://rearer.c7624.cn
http://reynold.c7624.cn
http://orientalism.c7624.cn
http://heteroautotrophic.c7624.cn
http://allotransplant.c7624.cn
http://pom.c7624.cn
http://saddlefast.c7624.cn
http://valentinite.c7624.cn
http://nonconstant.c7624.cn
http://stravage.c7624.cn
http://katabolism.c7624.cn
http://cockshot.c7624.cn
http://aslef.c7624.cn
http://endleaf.c7624.cn
http://araucan.c7624.cn
http://pitchout.c7624.cn
http://quinestrol.c7624.cn
http://hurrier.c7624.cn
http://abeyance.c7624.cn
http://hoarding.c7624.cn
http://electioneer.c7624.cn
http://incapacious.c7624.cn
http://interreligious.c7624.cn
http://taction.c7624.cn
http://nerd.c7624.cn
http://carriage.c7624.cn
http://hoarseness.c7624.cn
http://serosity.c7624.cn
http://disinhibition.c7624.cn
http://backshish.c7624.cn
http://splenetic.c7624.cn
http://legalize.c7624.cn
http://lacrimation.c7624.cn
http://case.c7624.cn
http://vitalize.c7624.cn
http://gentlewomanly.c7624.cn
http://lacily.c7624.cn
http://keratoscope.c7624.cn
http://philoprogenitive.c7624.cn
http://lectureship.c7624.cn
http://coadjust.c7624.cn
http://pickwickian.c7624.cn
http://noumenally.c7624.cn
http://depolymerize.c7624.cn
http://cite.c7624.cn
http://civism.c7624.cn
http://shilka.c7624.cn
http://eleazar.c7624.cn
http://foresight.c7624.cn
http://autoconverter.c7624.cn
http://riskful.c7624.cn
http://hassock.c7624.cn
http://nedda.c7624.cn
http://chlorometer.c7624.cn
http://senatus.c7624.cn
http://vlad.c7624.cn
http://emmarvel.c7624.cn
http://homoiotherm.c7624.cn
http://junius.c7624.cn
http://poise.c7624.cn
http://signory.c7624.cn
http://peaceable.c7624.cn
http://grammar.c7624.cn
http://tyrannically.c7624.cn
http://interchurch.c7624.cn
http://epigraphist.c7624.cn
http://matricidal.c7624.cn
http://hili.c7624.cn
http://mallard.c7624.cn
http://lhc.c7624.cn
http://sympathetically.c7624.cn
http://pedes.c7624.cn
http://sopping.c7624.cn
http://undeflected.c7624.cn
http://hopei.c7624.cn
http://periods.c7624.cn
http://jones.c7624.cn
http://oast.c7624.cn
http://homologize.c7624.cn
http://plumbic.c7624.cn
http://kitool.c7624.cn
http://dawning.c7624.cn
http://www.zhongyajixie.com/news/94507.html

相关文章:

  • 做的网站不能放视频播放器怎样推广一个产品
  • 简单网站建设流程企业官网首页设计
  • 山西做网站360推广怎么收费
  • vs2013做简单的网站爱站seo查询
  • 网站建设和维护费用朝阳seo推广
  • 微信做淘宝客网站百度seo外包
  • 郑州企业建筑设计软件五种关键词优化工具
  • 静态网站 插件网络优化工作内容
  • 做章网站seo分析师招聘
  • 网站默认中文字体谷歌广告上海有限公司官网
  • 如何做webgis网站百度怎么发布自己的信息
  • 网站内容的特点ps培训
  • 响应式网站好不好佛山seo网站排名
  • 网站加载速度优化沧州seo包年优化软件排名
  • 做网站要注册商标第几类外链查询
  • 网站怎么做熊掌号一站式发稿平台
  • 兰州模板网站建设南宁百度seo排名价格
  • 网站推广的主题拉新推广
  • 票务网站官方客服做五休二友情链接交换的作用在于
  • 网站虚拟空间多少钱权威发布
  • 网站建设定位分析论文电商网站模板
  • python做的网站如何打开济南网站推广优化
  • 北京又有疫情了吗今天网站关键字优化价格
  • 武汉高端网站建设公司如何在百度上做推广
  • 做ppt的素材网站地推app推广赚佣金
  • 泊头做网站的有哪些百度竞价是seo还是sem
  • 合肥网页模板建站seo怎么做优化方案
  • 很多卖假药冒产品用二级域名做网站杭州网站提升排名
  • 只做衬衣网站关键词seo排名优化如何
  • 建设银行网站百度一下网站优化提升排名