考察优先队列,不过要注意优先队列的优先排序是不稳定排序,解决方法和自定义排序一样,再添加一个参数即可
#include
#include
using namespace std;
string cmd;
struct stu
{
string name;
int p,lv,num;
friend bool operator<(stu x,stu y)
{
if(x.lv==y.lv)...
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者...
分类:
编程语言 时间:
2015-04-22 21:58:04
阅读次数:
122
本文转自:STl中的排序算法1.所有STL sort算法函数的名字列表:函数名 功能描述sort 对给定区间所有元素进行排序stable_sort 对给定区间所有元素进行稳定排序partial_sort 对给定区间所有元素部分排序partial_so...
分类:
编程语言 时间:
2015-04-20 18:21:24
阅读次数:
150
排序算法和查找算法差不多,也涉及到迭代器区间问题,关于该问题的注意事项就不在啰嗦了一、全部排序sort、stable_sortsort是一种不稳定排序,使用时需要包含头文件algorithm默认可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。如果只传入这两...
分类:
编程语言 时间:
2015-04-14 16:13:39
阅读次数:
244
题意:给你n个可以重复的无序数列,问经过k次相邻交换后最少还有多少对逆序数
求逆序对可以用树状数组来做,对于重复的元素,可能在sort的时候交换编号
求和的时候要注意去重,还有一种方法就是稳定排序stable_sort
#include
#include
#include
using namespace std;
#define ll __int64
#define N 100000+10
...
分类:
编程语言 时间:
2015-04-14 10:01:37
阅读次数:
132
第一步,先按数据的长度排序,计算出数据的长度(一般大小为正整数),然后按计数排序的方法排序第二步,对相同长度的数据进行基数排序。基数排序采用计数排序作为稳定排序。这里遇到了一些问题,1) 数组到底是按参数传入还是在被调用函数内部分配?2) 第二问里面a#include #include using ...
分类:
编程语言 时间:
2015-04-09 23:21:41
阅读次数:
259
1.计数排序基本思想:对于每一个输入元素x,确定小于(或等于)x的元素个数,就可以确定x的存放位置.特点:稳定排序#include#includeusing namespace std;void count_sort(vector A,vector &B,int k){ vector C(k+...
分类:
编程语言 时间:
2015-03-18 20:08:43
阅读次数:
249
1.快速排序:不稳定排序,最好情况O(nlogn),最差情况O(n^2).平均情况在所有nlogn排序中最快的排序快速排序分两步第一步是将l-r区间进行分块(假设将区间最后一个作为关键字)前面一块的数比小于等于关键字,后面一块大于关键字,并返回第一个大于关键字的位置,即函数partition第二部是...
分类:
编程语言 时间:
2015-03-11 19:39:29
阅读次数:
146
上学时我们很多学了很多种排序算法,不过在c++stl中也封装了sort等函数,头文件是#include 函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素部分排序partial_sort_copy对给定区间复...
分类:
编程语言 时间:
2015-02-27 16:25:48
阅读次数:
187