算法
文章平均质量分 57
Anthony_17
这个作者很懒,什么都没留下…
展开
-
常用算法——快速排序
1.什么是快速排序 选定数组中一个数为基准数(此文以数组第一个数作为基准数,个人习惯如此)。 分别从最左和最右遍历数组,将大于基准数的数放在其右边,小于基准数的数放在其左边。 递归方式重复步骤2,直到各区间只有一个数或为空。*快速排序被认为是所有O(N*logN)排序算法中效率最高的。 2.时间复杂度&空间复杂度最好情况:O(N*logN) 平均情况:O(N*logN) 最坏情况:O(N^2)原创 2016-01-26 09:44:49 · 350 阅读 · 0 评论 -
常用算法——二分查找(Binary Search)
1.二分查找原理 首先,待查找的数组或集合必须是已经过排序的,本文以从小到大递增数组为例讲解。 选取数组中点,将待查找目标与数组中点的值做比较。 如果目标小于中点值,则在数组起始位到数组中点这一段再获取中点值与之比较。 如果目标大于中点值,则在数组中点到数组结束位这一段在获取中点值与之比较。 以此类推,直到找到目标或者遍历完整个数组未找到目标为止。 2.二分查找实现(循环方式与递归方式原创 2016-01-24 10:22:36 · 646 阅读 · 0 评论 -
常用算法——希尔排序(Shell Sort)
1.什么是希尔排序 希尔排序的核心思想是使数组中任意间隔为g的元素都是有序的。首先取小于数组长度的一个数g1作为第一个间隔值,对全部数组进行两两分组,在分组内实现排序。然后取g2(g2<g1,g1到g2应有一个明确的增量算法)再对数组进行两两分组,再实现组内排序。重复上述操作直到gt=1为止,此时数组排序已经完成。 2.为什么使用希尔排序 希尔排序是对插入排序的改进,希尔排序在大数组的排序上原创 2016-01-31 19:53:10 · 539 阅读 · 0 评论