排序算法
KetchupZ
退役acmer一名,CCPC银+ICPC铜(欢迎大家访问我的Github地址:https://github.com/LieLieLiekey)
展开
-
归并排序求逆序数
归并排序求逆序数 例题:nyoj117 117-求逆序数 内存限制:64MB 时间限制:2000ms 特判: No 通过数:33 提交数:90 难度:5 题目描述: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 现在,给你一个N个元素的序列,请你判断出它的逆序数是多少。 比如 1 3 2 的逆...原创 2018-12-13 21:30:33 · 205 阅读 · 0 评论 -
归并排序(分治法,nlogn,较为稳定)
代码放在这里 时间复杂度与快排一样都为nlogn,但归并排序时间更为稳定。 相对于快排缺点是需要开一个临时数组用来存放临时数据。 /* 归并排序 稳定的排序方法 key code sort_combination() */ #include<cstdio> #include<iostream> #include<string.h> #include...原创 2018-07-30 13:31:22 · 304 阅读 · 0 评论 -
shall_sort(减少远距离的逆序数)
我写这个博客纯粹是让自己以后留着,按着自己的理解写一遍,让自己对之记忆更加深刻 百度百科上介绍的尤为详细 强力推荐 https://baike.baidu.com/item/%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F/3229428?fr=aladdin 希尔排序也称 缩小增量排序 希尔排序原理 :分段排序将相隔len长度的元素都放在一...原创 2018-01-10 13:14:27 · 225 阅读 · 0 评论 -
快排(递归排序模板)
操作 1.找到一个枢纽pivotkey ,对于一个一次操作让枢纽左边的值都小于等于pivotkey,枢纽右边的值都大于等于pivotkey 2.一个排序后将该区间分成两部分继续递归排序,直至不符合l<R; 注意对于默认枢纽为第一个元素,你也可以找到 low-high中人一个当作枢纽然后与第一个进行交换 #include<stdio.h> #include&l...原创 2018-05-08 18:15:59 · 304 阅读 · 0 评论 -
拓扑排序(可判断是否有环(正环负环无所谓))
数据结构AOE网 和AOV-网一节 意义就是: 给出一些事件和活动 (图),该事件进行的前提条件是,所有以该事件为后继的活动已经完成(顶点进行的前提条件是,其作为后继的边全部完成) 给这些事件排个序,使得事件进行过程不冲突 如果冲突 存在一个环 否则 可以得到一个拓扑序列,并且还可以计算对应事件或者边的最早发生事件和最晚发生时间。 代码实现:...原创 2018-10-14 13:33:20 · 657 阅读 · 0 评论