
基本算法
文章平均质量分 62
qq_23617681
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常用算法之堆排原理介绍与java实践
堆排是一种常见的排序算法,空间复杂度为o(1),时间复杂度是o(nlogn)。 原理介绍: 思想类似与冒泡排序、选择排序。逐步求取每个子树的最大值,直至最大值到达最顶层索引值为0的堆顶。 堆排是利用堆进行排序的方法。可分为大堆和小堆,即数值越大,所处堆的层级越靠上。 其中,堆在计算机中是一种数据结构,再细致点讲,是一个完全二叉树。 如果堆的底层用数组存储数据的话,则存在如下性质: 1、原创 2016-04-09 21:04:53 · 446 阅读 · 0 评论 -
常见算法之归并排序java实践
归并排序是一种典型的分治算法(divide and conquer)。 归并算法相对快速排序、堆排而言,是稳定的。即原先相等的两个数,进行归并排序后,所处位置不会变化。 基本过程为: 1、将待排序数组平分两组,并对两子数组进行排序。 2、对排序好的子数组进行合并。 3、循环进行1、2,直到子数组只含有一个数。 注意事项: 1、合并时,另一个未循环完的子数组,剩余元素合并到新数原创 2016-04-09 22:40:04 · 290 阅读 · 0 评论 -
常见算法之希尔排序java实践
希尔排序又称shell排序,它是插入排序的一种改进。 在插入排序中,若要插入的元素很小,则需要移动数组多大多数元素,才能将元素插入正确位置。 希尔排序把数组分成几个小组,组内元素的增量是n/2,这样在组内进行插入排序时,就能大跨度地移动元素,大大减少了插入排序的移动次数。(算法优越之处) 希尔排序不稳定。 时间复杂度o(nlogn). 空间复杂度o(1) 基本思想: 1、将待原创 2016-04-10 10:26:26 · 406 阅读 · 0 评论