算法
文章平均质量分 77
HunterGao
这个作者很懒,什么都没留下…
展开
-
排序算法之归并排序
继续我的排序算法之旅,这次谈谈归并排序算法,归并排序和快速排序都使用了递归,但思想却一点不一样。快速排序是通过不断的分组,将原来无序的序列变得有序;而归并排序却是在分组之后,合并的时候,将无序的序列变得有序。所以快速排序最重要的是如何分组,而归并排序最重要的是如何合并。归并排序的思想:把待排序序列分为若干个子序列,使每个子序列是有序的。然后再把有序子序列合并为整体有序序列。排序的工作都是在合并原创 2015-03-12 16:57:09 · 372 阅读 · 0 评论 -
排序算法之冒泡排序
从今天开始,希望能将几种排序算法一一展现,也算是对自己学习的一个总结,先从冒泡排序开始。冒泡排序可能是我们最先接触的排序算法,至少大学里我学的第一种算法就是它,话不多说,让我们看看冒泡排序。冒泡排序:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将原创 2015-03-10 15:04:02 · 375 阅读 · 0 评论 -
排序算法之快速排序
上次我们对冒泡排序进行了简单的介绍,需要了解的朋友可以不妨去看一下排序算法之冒泡排序。今天要说的快速排序和冒泡排序一样,也是交换排序。首先了解一下快速排序的思想:选择一个基准元素,(通常选择第一个元素或者最后一个元素)通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。说起来比较简原创 2015-03-12 09:54:24 · 546 阅读 · 0 评论 -
排序算法之堆排序
1.什么是堆堆是完全二叉树。堆分为最大堆和最小堆。最大堆是根节点大于等于左右子树;最小堆是根节点小于等于左右子树。存储堆最常用的数据结构是数组:所以最大堆的表示:array[i] >= array[2 * i] && array[i] >= array[2 * i + 2];最小堆的表示:array[i] <= array[2 * i] && array[i] <= array[2 * i +原创 2016-06-07 10:49:10 · 309 阅读 · 0 评论