
算法设计与分析
BigCowPeking
追求卓越,永不放弃
展开
-
算法设置与分析:归并排序算法MergeSort
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plain copy//将有序数组a[]和b[]合并到...转载 2018-07-01 08:47:49 · 326 阅读 · 0 评论 -
算法设计与分析:堆排序HeapSort
#include <iostream>void HeapAdjust(int array[], int parent, int length) { int temp = array[parent]; // temp保存当前父节点 int child = 2 * parent + 1; // 先获得左孩子 while (child < length) { //...原创 2018-07-01 12:03:40 · 381 阅读 · 1 评论 -
算法设计与分析:快速排序QuickSort
快速排序QuickSort:既然能把冒泡KO掉,马上就激起我们的兴趣,tnd快排咋这么快,一定要好好研究一下。 首先上图: 从图中我们可以看到:left指针,right指针,base参照数。其实思想是蛮简单的,就是通过第一遍的遍历(让left和right指针重合)来找到数组的切割点。第一步:首先我们从数组的left位置取出该数(20)作为基准(base)参照物。第二步:从数组的right位置...转载 2018-06-26 21:53:17 · 2046 阅读 · 2 评论