算法
to_utopia
这个作者很懒,什么都没留下…
展开
-
排序算法之 堆排序
<br /><br />#include<iostream><br />usingnamespacestd;<br />void HeapAdjust(int H[],int s,int m)<br />{<br /> int rc=H[s];<br /> int j;<br /> for(j=s*2;j<=m;j*=2)<br /> {<br /> if(j<m && H[j]<H[j+1])<br /> j++;<br /> if(rc>H[j])break;<br /> H[s]原创 2010-06-26 16:38:00 · 556 阅读 · 0 评论 -
排序之 快速排序
<br />#include <iostream><br /><br /> using namespace std;<br /><br /><br /> //快速排序思想简略:找到一个支点,使序列中支点左边的元素均小于支点元素,右边的元素均大于支点元素<br /> //并把左边的元素看成一个新的序列,右边的元素同样也看成一个新序列,再对这两个新序列执行同样的操作(找支点)<br /> //如此递归。。。直至只有一个元素为止<br /><br /> //分割函数<br /> //交换顺序表val[原创 2010-08-15 16:37:00 · 787 阅读 · 0 评论 -
堆排序
锦标赛进化而来的 选择排序 ----堆排序//1,首先从第length/2个元素开始,到第一个元素,为止,开始建立堆//2,堆顶元素与最后一个元素对调,(这就开始排序啦。。)然后再调整堆顶元素(也就是第一个元素,下标为0)至 第length -1 个元素 // 为堆,再对调堆顶元素,如此循环。。。就排序好了// 如上可知,如果非递减有序,则应建立大顶堆,反之亦然#include using namespace std; //比较函数 bool LT(const int a, const i原创 2010-08-15 15:54:00 · 616 阅读 · 0 评论