排序算法
文章平均质量分 78
拥抱技术
学习就像谈恋爱!
展开
-
堆排序(降序)
堆排序的原理:如果是按升序排。首先把数组建为最小堆,最小堆的根结点a[1]一定是数组中的最小值.所以每次把根结点a[1]与a[n]交换。在把剩余的元素再建为最小堆,在把a[1]与a[n-1]交换。重复次过程n次。代码如下:#include #include #define mx 50using namespace std;int a[mx] ;int原创 2013-12-02 12:03:56 · 3575 阅读 · 0 评论 -
最小生成树kruskal算法
最小生成树(最小权值生成树的简称)。原理:每次选择一条最小权边,直至构成一棵最小生成树。最小生成树的构建过程:1.排序。将图中所有边的权值按从小到大的顺序排列成L:T2.当|T|a。选L中的最小权边e。b。若TU{e}中不存在回路,将e加入T:Tc。从L中删除e:L3.结束。代码如下://并查集操作int findfather(int i){原创 2013-12-02 23:23:28 · 991 阅读 · 0 评论 -
HDU 确定比赛名次
确定比赛名次Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 60 Accepted Submission(s) : 24Problem Description有N个比赛队(1 Inpu原创 2014-03-31 16:14:35 · 797 阅读 · 0 评论 -
拓扑排序
快期末考试了,真烦!好久没编程序了。拓扑排序是求解网络问题所需的主要算法。管理奇数如计划评审技术和关键路径法都应用这一算法。一个工程可分为若干子工程,子工程常称为活动。因此要完成整个工程,必须完成所有的活动。活动的执行常常伴随着某些先决条件, 一些活动必须先于另一些活动被完成。 拓扑排序的要求:不能形成环。(一个条件不能是先决条件,又是后继条件)拓扑排序的描述如下:(1)在图中原创 2013-12-19 23:03:14 · 669 阅读 · 0 评论 -
A Contesting Decision 简单排序题
A Contesting DecisionTime Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)Total Submission(s) : 7 Accepted Submission(s) : 6Problem DescriptionJudging a pr原创 2014-04-24 07:57:16 · 1394 阅读 · 0 评论 -
选择 冒泡 插入 快排 堆排序 排序
几种常用的排序算法。冒泡排序,选择排序,插入排序,快排。(这里认为是升序)冒泡排序的原理:每次把相邻的元素比较大小,把剩余的元素中的最大只向后移动,n-1次后数组就成为升序的。 冒泡排序代码如下: for(int i = 0; i < n; i ++) for(int j =1;j < n -i; j ++) if(a[j] < a[j -原创 2013-11-25 18:36:55 · 960 阅读 · 0 评论 -
STL中sort函数用法
sort()头文件是:#include sort()函数用法有很多种,重载运算符,定义比较函数。我们重载>和也可以定义比较函数。Point.h#ifndef POINT_H#define POINT_Hclass Point{ private: double x; double y; public: Po原创 2014-12-02 15:30:48 · 905 阅读 · 0 评论