最大堆/最小堆 堆的定义是:n个元素的序列{k1,k2,…,kn},当且仅当满足如下关系时被成为堆 (1)Ki= k2i且 ki>= k2i-1 (i =
1,2,…[n/2])当满足(1)时,为最小堆,当满足(2)时,为最大堆。 若将此序列对应的一维数组堪称是一个完全二叉树...
分类:
其他好文 时间:
2014-05-28 03:17:26
阅读次数:
476
DescriptionGiven m sequences, each contains n
non-negative integer. Now we may select one number from each sequence to form a
sequence with m integers...
分类:
其他好文 时间:
2014-05-28 00:05:22
阅读次数:
298
#include#include#includeusing namespace std; //void
MinHeapFixup(int a[], int i)//{// int j ,temp;// temp = a[i];// j = (i-1)/2;//
while(j >= 0 && i !...
分类:
其他好文 时间:
2014-05-26 10:26:08
阅读次数:
212
今天闲来没事干,写个堆排序,用模版类实现的,数据可是任何可比较的类型。代码如下:MySqList.h 1 #ifndef __MYSQLIST 2
#define __MYSQLIST 3 template 4 class MySqList 5 { 6 private: 7 int len...
分类:
其他好文 时间:
2014-05-26 08:18:02
阅读次数:
274
/*自我修改* Note: 堆排序(Heap Sort)*/#include using
namespace std;// 输出当前堆的排序状况void PrintArray(int data[], int size){ for (int i=1;
i a[i]) // 符号修改后形成...
分类:
其他好文 时间:
2014-05-25 19:07:25
阅读次数:
227
排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一定O(n)插入排序O(n2)O(n2)稳定O(1)堆排序O...
分类:
其他好文 时间:
2014-05-21 23:31:35
阅读次数:
310
package com.bupt.acm;import
java.util.Scanner;public class HeapSort { private int getLeft(int i){ return
2*(i+1)-1; } private int ...
分类:
其他好文 时间:
2014-05-21 22:01:39
阅读次数:
246
常见排序算法主要有:插入排序(直接插入排序、希尔排序)选择排序(直接选择排序、堆排序)交换排序(冒泡排序、快速排序)归并排序基数排序外部排序一.直接插入排序算法思想:在一个待排序列中,从第二个元素开始,依次进行排序,每次都将待排序元素从后往前,依次与前面的元素进行比较,从而将带排序元素移动到一个合适...
分类:
其他好文 时间:
2014-05-21 20:03:36
阅读次数:
353
【题目】
有很多无序的数,从中找出最大的K个数。假定他们都不相等。
【解法一】
如果数据不是很多,例如在几千个左右,我们可以排一下序,从中找出最大的K个数。排序可以选择快速排序或者堆排序
[cpp] view
plaincopy
#include
#include
int cmp(const void *a,const ...
分类:
其他好文 时间:
2014-05-21 07:30:07
阅读次数:
234
经典排序算法:堆排序法 让算法会说话,让程序自己告诉我们怎么回事.........
分类:
其他好文 时间:
2014-05-21 06:43:20
阅读次数:
231