js与数据结构--排序算法
# js与数据结构
bailizx
这个作者很懒,什么都没留下…
展开
-
js 实现选择排序中的------快速排序 (递归、非递归实现)
1 思想(王道p287) 快速排序是对冒泡排序的一种改进。其基本思想是基于分治法的。在待排序列中任选一个基准值,对待排序列进行一趟快速排序,便将整段序列分为两个部分,其中一部分的值都小于基准值,另一部分都大于基准值。然后分别递归对这两部分继续上述过程,直到每一部分只有一个元素或者空为止,即所有元素都排序好了。 2 重点 对待排序的表进行划分(进行一趟快速排序)。 其步骤是 1)从后往前找第一个比基准值小(相等也行)的元素,将比基准值小的元素移动到左端,即将right位置的值赋值给left位置;原创 2020-07-15 19:45:19 · 1035 阅读 · 1 评论 -
js实现冒泡排序
目录 1 思想 2 时间复杂度 3 改进 4 代码 1 思想 冒泡排序的原理如下,从第一个元素开始,把当前元素和下一个元素进行比较。如果当前元素大,那么就交换位置,重复操作直到比较到最后一个元素,那么此时最后一个元素就是该数组中最大的数。下一轮重复以上操作,但是此时最后一个元素已经是最大数了,所以不需要再比较最后一个元素,只需要比较到 length - 1 的位置。 2 时间复杂度 该算法的操作次数是一个等差数列 n + (n - 1) + (n - 2) + …+ 1 ,去掉常数项以后得出原创 2020-05-22 18:17:35 · 162 阅读 · 0 评论 -
插入排序
目录 1 思想 2 时间复杂度 3 改进 4 代码 1 思想 1)默认第一个元素为有序; 2)取出下一个元素temp,在已经排序的元素序列中从后向前扫描; 3)如果当前元素(已排序)大于temp,将该当前元素移到下一位置; 4)重复步骤3,直到找到已排序的元素小于或者等于temp的位置; 5)将元素temp插入到该位置后; 6)重复步骤2~5。 2 时间复杂度 最好的情况:T(n)= O(n) 当输入的数据已经是正序时 最坏的情况,T(n)= O(n2) 当输入的数据是反序的时候原创 2020-05-22 18:11:21 · 113 阅读 · 0 评论 -
js实现冒泡排序
1 思想 冒泡排序的原理如下,从第一个元素开始,把当前元素和下一个索引元素进行比较。如果当前元素大,那么就交换位置,重复操作直到比较到最后一个元素,那么此时最后一个元素就是该数组中最大的数。下一轮重复以上操作,但是此时最后一个元素已经是最大数了,所以不需要再比较最后一个元素,只需要比较到 length - 1 的位置。 2 时间空间复杂度 1 时间复杂度 该算法的操作次数是一个等差数...原创 2020-05-02 10:24:14 · 149 阅读 · 0 评论