#includeusing namespace std;////写出快速排序,归并排序与堆排序int
adjustarray(int a[],int left,int right){ int x = a[left]; while(left x
&& left < right) righ...
分类:
其他好文 时间:
2014-05-28 21:32:19
阅读次数:
282
一个堆可以被看作一棵二叉树和一个数组。堆排序主要分为以下几步:建堆,取出堆顶元素,调整堆,递归处理。本文中给出了在数组上建堆和调整以及堆排序的相关代码实现和实现过程的图示,以供参考。
分类:
编程语言 时间:
2014-05-28 19:58:31
阅读次数:
336
最大堆/最小堆 堆的定义是: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
常见排序算法主要有:插入排序(直接插入排序、希尔排序)选择排序(直接选择排序、堆排序)交换排序(冒泡排序、快速排序)归并排序基数排序外部排序一.直接插入排序算法思想:在一个待排序列中,从第二个元素开始,依次进行排序,每次都将待排序元素从后往前,依次与前面的元素进行比较,从而将带排序元素移动到一个合适...
分类:
其他好文 时间:
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