归并排序,原地归并排序,冒泡排序,选择排序,逆序对数(n^2, nlgn)
分类:
其他好文 时间:
2014-06-14 18:49:48
阅读次数:
288
1 package chap02; 2 3 import static
org.junit.Assert.*; 4 5 import java.util.Arrays; 6 7 import org.junit.Test; 8 9
public class ques2_4...
分类:
其他好文 时间:
2014-06-07 10:46:08
阅读次数:
274
求环上的逆序对最小值,这题据说应该是用线段树去做,我先拍了一个裸的,总复杂度O(N2): 1
#include 2 #include 3 using namespace std; 4 5 #define MAXN 5000 6 7 int N; 8
int A[MAXN], sorte...
分类:
其他好文 时间:
2014-06-06 13:13:01
阅读次数:
200
思路:最简单的方法是顺序数组,将每个数字与后面的比较,统计逆序对的个数,这种方法的时间复杂度为O(n*n),这种方法写出的代码在九度OJ上测试,会超时。剑指offer给出了归并排序的思路,这个有点难想到啊,也可能是我太弱了,根本没往这方面想!理解了思路,就不难了,将数组划分成两个子数组,再将子数组分别划分成两个子数组,统计每个子数组内的逆序对个数,并将其归并排序,再统计两个子数组之间的逆序对个数,并进行归并排序。这就是归并排序的变种,在归并排序代码的基础上稍作改进即可。
合理还要注意一点:全局变量c...
分类:
其他好文 时间:
2014-06-03 03:14:36
阅读次数:
239
出题:多人按照从低到高排成一个前后队列,如果前面的人比后面的高就认为是一个错误对;
例如:[176,178,180,170,171]中的错误对为 , , , , , 。
现在要求从一个整数序列中找出所有这样的错误对;分析:逆序对(Inversion Pair):在N个可判断大小的数中,逆序...
分类:
其他好文 时间:
2014-05-26 02:51:07
阅读次数:
278
Description在这个问题中,你需要分析一个对n个不同数排序的算法。该算法主要通过交换相邻数直到序列有序(升序)。比如:对输入序列
9 1 0 5 4经过一系列交换后变成有序序列 0 1 4 5
9你的任务是计算将序列变成有序最少需要经过多少次交换。Input输入包含多组测试数据。每组第一个是...
分类:
其他好文 时间:
2014-05-20 10:57:05
阅读次数:
296
设A[1…n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个逆序对(inversion)【《算法导论》2-4】
现给出一个数列,求该数列中的逆序对(逆序对 )
利用归并排序的方法我们给出如下算法://
// main.cpp
// CpushTest
//
// Created by Ellen on 14-5-11.
// Copyright (c...
分类:
其他好文 时间:
2014-05-13 22:53:12
阅读次数:
340
题意:两两相邻的元素可以交换,问最小交换次数使得数列为升序。
思路:归并排序分治法。看到琦神又用了树状数组的方法求。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define P...
分类:
其他好文 时间:
2014-05-07 08:54:01
阅读次数:
488
Minimum Inversion Number Time Limit:1000MS Memory
Limit:32768KB 64bit IO Format:%I64d & %I64u Description The inversion number
of a given number seque...
分类:
其他好文 时间:
2014-05-04 12:27:07
阅读次数:
349
题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=2418解题报告:就是给你n个数,然后让你求这个数列的逆序对是多少?题目中n的范围是n
< 500000,所以,暴力是不行的。还是第一次学会用线段树求逆序数,这种方法的时间复杂度是n * lo...
分类:
其他好文 时间:
2014-04-29 21:38:23
阅读次数:
463