------排序
_zhj
加油!
展开
-
查找n个元素中的第二小元素
一道算法导论上的课后习题,最坏情况下最小比较次数是 n + - 2。如下图所示先两两比较找出最小值,即非叶节点的个数,需要n-1次。然后找第二小元素,第二小元素一定是和最小元素比较过的。这样的结点一共有个,因此需要-1次比较。所以总的比较次数是n + - 2。原创 2017-05-18 15:25:51 · 1074 阅读 · 0 评论 -
HDU4857逃生 拓扑排序+优先级队列
逃生Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的通道很窄,大家只能排成一行。现在有n个人,从1标号到n。同时有一些奇怪的约束条件,每个都形如:a必须在b之前原创 2017-05-17 19:50:41 · 328 阅读 · 0 评论 -
求逆序数(归并排序和树状数组)
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007归并排序法在归并过程中,两部分记为左数组和右数组,如果右数组当前的数小于左数组当前的数,那么逆序对总数加左数组剩余元素个数。时间复杂度为O(nlogn)。代码:#incl...原创 2019-04-08 22:15:06 · 256 阅读 · 0 评论 -
排序算法(快排,归并,堆排,冒泡,选择,插入)
以下算法均按从小到大排序。1、快排#include <iostream>using namespace std;void QuikSort(int a[], int l, int r){ if(l >= r) return; int key = a[l]; int i = l, j = r; while(i < j){ ...原创 2019-08-18 20:07:54 · 205 阅读 · 0 评论