摘要:
**基数排序** 核心思想: 对排序数据进行个位、十位、百位...的拆分(类似于桶排序的分组),先对个位比较排序,排完后再对十位比较排序,直到比较的位数大于最大值时,返回结果。 let arr = [1,-8,6,-50,34,15,-12,42,48,30,11]; let arrMin = Ma 阅读全文
摘要:
**希尔排序** 对数组按照某一特定增量进行直接插入排序,逐渐减少增量,当增量为1时,进行最后一次直接插入排序,最终得到结果。 以下方数据为例,这里会讲解希尔排序的具体步骤。 function dd(arr_){ let flag = Math.floor(arr_.length/2);//增量 w 阅读全文
摘要:
**选择排序** 选择排序每次都会获得最大或者最小元素的下标,每次遍历结束替换下标元素的位置,获得一个最值,他不需要像冒泡排序一样,每一次的遍历需要进行多次交换 let arr = [8,9,1,7,2,3,5,4,6,0]; for(let i = 0;i < arr.length;i++){ l 阅读全文
摘要:
**插入排序** 插入排序主要是将需要排序的数组分为两部分,取第一个元素作为已排序数组,其余元素作为未排序数组,依次取未排序数组的元素和已排序数组中的元素进行对比插入,最终未排序数组变为空值,已排序数组就是排序结果 let arr = [8,9,1,7,2,3,5,4,6,0]; for (var 阅读全文