
Sort
HankingHu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
快速排序QuickSort(Java)
快速排序思想 如上图:每趟快速排序开始时,设置一个key,key=array[low],然后由high向左,找到小于key的值,复制到low位置,然后再由low向右找到大于key的值,复制到high位置,直到low=high结束, 将key的复制到low位置。 上图中第一轮划分后找到32的位置,然后递归的对32左边和右边的进行排序。代码:package Sort;import原创 2017-03-31 09:43:45 · 17532 阅读 · 7 评论 -
归并排序MergeSort(Java)
归并排序思想:先将数组中的每两个进行合并并且在合并的过程中进行排序,然后每四个进行合并。一直到数组合并完成。 例如上图中:要对数组中的元素:80、30、60、20、10、60、50、70进行排序,先把数组分成8组先分别对这八组进行合并排序,(30,80),(20,60),(10,60),(50,70)这四组组内已经排好序。然后继续排序(20,30,60,80)(10,50,60,70)最后对这两组原创 2017-03-30 22:01:28 · 3909 阅读 · 0 评论 -
堆排序HeapSort(Java)
堆排序堆排序思想:堆排序分为三个过程:①建堆:使得任一个节点的值大于左右孩子节点的元素因此堆顶的元素最大(大根堆)。②调整堆:删除掉堆顶元素后,还要保持堆的性质就要对堆进行调整。③堆排序:每次选择堆顶元素,并将堆顶元素删除,调整堆后,再重复操作直至堆为空。下面是这三种操作的具体过程:①建堆,建堆是不断调整堆的过程,从len/2处开始调整,一直到第一个节点,此处len是堆中元素的个数。建堆的过程是线性原创 2017-03-30 22:48:19 · 10311 阅读 · 3 评论