javascript排序算法整理
前端面试中必不可少的技能
/** * 高效率冒泡排序 * 外层for循环控制循环次数 * 内层for循环负责相邻两数交换位置,找到最大数,排到最后 * 设置done标志位,减少不必要循环 */ var arr = [1, 3, 4, 90, 8, 49, 0]; var max = arr.length - 1; for (var j = 0; j < max; j++) { var done = true; // 这里可以根据外层的j 逐渐减少内层遍历 // 因为每次遍历置于最后的元素 不需要在参加遍历 [1, 3, 4, 0, 8, 49, 90] for (var i = 0; i < max - j; i++) { if (arr[i] > arr[i + 1]) { var temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; done = false; } } if (done) { break; } }
相关推荐
randy0 2020-11-17
lixiaotao 2020-10-07
美丽的泡沫 2020-09-08
nongfusanquan0 2020-08-18
hang0 2020-08-16
earthhouge 2020-08-15
算法改变人生 2020-07-28
troysps 2020-07-19
Broadview 2020-07-19
chenfei0 2020-07-18
风吹夏天 2020-07-07
yangjingdong00 2020-07-05
数据与算法之美 2020-07-05
shawsun 2020-07-04
数据与算法之美 2020-07-04
要知道时间复杂度只是描述一个增长趋势,复杂度为O的排序算法执行时间不一定比复杂度为O长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n2的值实际比 knlogn+c还要小。
Evankaka 2020-07-04
田有朋 2020-06-28