随笔分类 -  排序算法

摘要:组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。至于这里的“前一个”和“后一 阅读全文
posted @ 2020-09-10 18:04 neverstopcoding 阅读(300) 评论(0) 推荐(0)
摘要:题目描述: 传送门 题解:一道入门的桶排序,过于简单所以直接贴代码 代码: 1 #include<iostream> 2 using namespace std; 3 4 int count[30000]={0}; 5 int main(){ 6 int a[10000]; 7 int n,k; 8 阅读全文
posted @ 2020-05-01 23:19 neverstopcoding 阅读(256) 评论(0) 推荐(0)
摘要:事先知道序列中的记录都位于某个小区间段[0,m)内。 将具有相同值的记录都分配到同一个桶中,然后依次按照编号从桶中取出记录,组成一个有序序列。 桶式排序算法 template <class Record> class BucketSorter:public Sorter<Record,Compare 阅读全文
posted @ 2020-04-28 15:23 neverstopcoding 阅读(200) 评论(0) 推荐(0)
摘要:输入:第一行为点数n和各连接边数m 接下来m行写某一条有向边的起始点和终止点 输出:拓扑排序所有方案和方案种数 sample input 9 10 0 1 1 3 2 4 3 2 3 6 5 4 6 5 7 5 8 6 8 7 sample output 0 1 3 2 8 6 7 5 4 0 1 阅读全文
posted @ 2020-04-17 18:18 neverstopcoding 阅读(2909) 评论(0) 推荐(0)
摘要:STL中的sort函数: sort是一种快速排序,最好、正常和平均时间复杂度都为O(nlogn),最差的时间复杂度将达到O(n^2)。由于是一种快排,所以sort不是一种稳定的排序算法。 常见的sort的两4种形式: 1.sort(array+1,array+n+1):即默认的从小到大排序,这是so 阅读全文
posted @ 2020-04-16 14:02 neverstopcoding 阅读(109) 评论(0) 推荐(0)
摘要:拓扑排序看起来很难,其实了解后不算难(思想非常清楚) 关键掌握思想后需要学会应用到具体的题目中去。(从入度为0到出度为0) 1、拓扑排序的介绍 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边 阅读全文
posted @ 2020-03-30 01:35 neverstopcoding 阅读(1039) 评论(0) 推荐(0)
摘要:题目背景 你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。 题目描述 给你一个食物网,你要求出这个食物网中最大食物链的数量。 (这里的“最大食物链”,指的是生物学意义上的食物链,即最 阅读全文
posted @ 2020-03-30 01:11 neverstopcoding 阅读(497) 评论(0) 推荐(0)