
算法
文章平均质量分 62
云飞扬_Dylan
这个作者很懒,什么都没留下…
展开
-
排序算法之快速排序算法
快速排序算法是一种较为快速的排序算法,其平均时间复杂度为O (n*logn)。其算法思想是在序列中选取参考元素,将比参考元素小的元素都放到参考元素的左边,将比参考元素大的元素都放到参考元素的右面,这就完成了一趟排序。最后应用分治思想分别对参考元素两边的子序列进行排序。算法中一趟排序的步骤描述如下: 1. 选取参考元素,一般情况下以排序序列(设为array[])的第一个元素作为参考元素,设原创 2017-03-11 15:50:16 · 554 阅读 · 0 评论 -
排序算法之直接插入排序
一、介绍 直接插入排序是最简单的一种排序,最坏情况下时间复杂度为O(n2),最好情况下时间复杂度为O(n),平均为O(n2). 二、算法思想 当要对序列中一个元素(设元素下标为j)进行排序时,遍历这个元素前面的所有元素,找到该元素的目的位置,即如果要求序列从小到大排序的话,则遍历在该元素前面的所有元素,找出第一个大于该元素的元素,设为array[k],则对区间[k,j)中的元素依次向后移动一原创 2017-03-12 14:51:37 · 662 阅读 · 0 评论 -
排序算法之希尔排序(ShellSort)
一、简介 希尔排序又名缩小增量排序,属于插入排序,是对直接插入排序算法的一种改进。其平均时间复杂度为 O(n^1.3),最好情况下为O(n),最差为O(n2). 二、算法思想及步骤: 1. 对排序序列按一定的步长(gap)进行分组。 2. 分别对每组按直接插入排序进行排序。 3. 按一定规则缩减步长(例如可用每次步长减半的方式,即gap=gap/2)。 4. 重复2、 3 步骤直至步原创 2017-03-12 11:57:29 · 2239 阅读 · 0 评论