数据结构
文章平均质量分 79
wait_hua
这个作者很懒,什么都没留下…
展开
-
【数据结构】堆排序
#includeusing namespace std;//大顶堆templatevoid HeapAdjust(Type *array,int i,int size){ int lchild = 2*i+1; //i元素的左孩子节点 int rchild = 2*i+2; //i元素的右孩子节点 int max = i; if(i<=size/2)//是叶子节点的不原创 2014-02-13 16:00:18 · 855 阅读 · 0 评论 -
【数据结构】数组中的最大连续递增子序列
数组中的数是乱序的,求出数组中最大的连续子序列(这里为递增)。方法一:用一个辅助数组list[length],记录下数组中每个元素对应的最大连续序列长度,默认为1,即从该元素后没有连续的序列。当i元素比i-1个元素大时,则将i-1个元素的最大子序列长度加1即为第i个元素的最大序列长度。最后从list[]数组中找到最大的值max,即为该数组的最大连续子序列。该方法的优点是思路清晰,代码简介易原创 2014-03-15 15:35:14 · 4442 阅读 · 0 评论 -
【数据结构】输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。由于碰到一个偶数,需要移动O(n)个数字,因此总的时间复杂度转载 2014-08-17 15:27:20 · 1662 阅读 · 1 评论