堆排序#include <iostream>using namespace std;int tempnum;void KeepCharacter(int *data,int n,int num) //保持性质函数,保证是一个大根推;{ int left=n*2; int right=n*2+1; int max; //记录最大的数字的位置; if(left<=num&&data[n]<data[left]) //比较根与左孩子大小,挑出一个比较大的数 max=left; else ... Read More
堆排序 自底向上的归并排序: 希尔排序: 快速排序: 计数排序: 对于一个int数组,请编写一个计数排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: 对于一个int数组,请编写一个基数排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返 Read More
贪心选择算法为算法分析中一种常用算法,通过一系列的选择来得到一个问题的解。它所作的每一个选择都是当前状态下某种意义的最好选择,即贪心选择。希望通过每次所作的贪心选择导致最终结果是问题的一个最优解。这种启发式的策略并不总能奏效,然而在许多情况下确能达到预期的目的。对于可利用贪心算法解决的问题需要同时满足:最优子结构性质和贪心选择性质。1.贪心选择性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。在动态规划算法中,每步所作的选择往往依赖于相关子问题的解。因而只有在解出相关子问题后,才 Read More