算法
hitzheng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法之插入排序
算法系列之插入排序时间复杂度:O(n^2)空间复杂度:O(1)图示:图中深色的方块代表本次迭代待插入的元素,即程序中的i,每次都要向前比较,找到合适的插入位置,相应的元素依次后移/** @brief 插入排序 * * @param pData int* 待排序数组 * @param nSize int 待排序数组大小 * @return void * *原创 2012-07-14 11:48:06 · 579 阅读 · 0 评论 -
算法之冒泡排序
算法系列之冒泡排序时间复杂度:O(n^2)空间复杂度:O(1)图示:说明:冒泡排序每次从数组的最后一个往前比,把该轮最小的元素往前移到对应位置,如第i轮迭代把第i小的元素移到数组的第i位置,该轮最小的元素就像气泡一样从数组上升到对应位置。图中是i==0时,最小元素1移到第0位置。/** @brief 冒泡排序 * * @param pData int*原创 2012-07-14 11:52:34 · 1032 阅读 · 0 评论 -
算法之合并排序
算法系列之合并排序时间复杂度:O(nlogn)空间复杂度:O(n^2)图示:说明:合并排序是一个分治的过程,基本的思想是把待排序的数组划分成两个子数组,对两个子数组排序,再把两个已排序好的子数组合并,这是一个递归的过程,直到子数组大小是1(只有一个元素的数组是有序的)。分两步:1. 从上到小划分子数组,对子数组排序2. 从下到上合并子数组,最终形成排序好结果原创 2012-07-14 11:56:33 · 538 阅读 · 0 评论 -
算法之堆排序
算法系列之堆排序时间复杂度:O(nlogn)空间复杂度:O(1)堆:一种完全二叉树,满足根节点比两个子节点都大(大根堆)或小(小根堆),并且其左右子树也是堆堆排序的基本思路:1. 将输入数组从倒数第一个非叶子节点开始建堆2. 将根与最后一个叶节点交换(即将最大值放到数组的最后一个),并将剩下的元素再整理成堆。3. 重复第2步,直到剩下一个元素图示:原创 2012-07-16 22:17:25 · 788 阅读 · 0 评论
分享