题意:两两相邻的元素可以交换,问最小交换次数使得数列为升序。
思路:归并排序分治法。看到琦神又用了树状数组的方法求。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define P...
分类:
其他好文 时间:
2014-05-07 08:54:01
阅读次数:
488
计数排序:它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法
实现原理: 首先将k范围内的数都C[]数组设0,然后遍历一边数组A[],对应的C[A[i]]++,
然后再将A[]数组向高位递加,观察发现每个不同的数字对应的C[]值都是该数字在排序后数组的位置,然后填充重复的数字
代码:
#include
#include
...
分类:
其他好文 时间:
2014-05-07 08:50:13
阅读次数:
254
接触Trie树是在选拔赛时候遇到一题目,TLE无数次依然无解,赛后发现字符串统计有一利器名曰“字典树”,后来花了一段时间去写Trie.
什么叫Trie树?
Trie树即字典树。
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时...
分类:
其他好文 时间:
2014-05-07 07:05:09
阅读次数:
351
Paint the Grid Again
Time Limit: 2 Seconds
Memory Limit: 65536 KB
Leo has a grid with N × N cells. He wants to paint each cell with a specific color (either black or white).
Leo has a...
分类:
其他好文 时间:
2014-05-07 06:56:10
阅读次数:
470
package mydata;
public class MyMergeSort {
/**
*
* 1.递归拆分
* 2.合并
* 归并排序 先将初始的序列表看成是n个长度为1的有序表
* (1)定义指针i,指向第一个序列表的第一个元素
* (2)定义指针j,指向第二个序列表的第一个元素
* (3)比较i,j指向的元素大小,若前者大,将后者插入到新表中 否...
分类:
编程语言 时间:
2014-05-07 06:21:54
阅读次数:
275
private static void sort1(int x[], int off, int len) {
// Insertion sort on smallest arrays //长度小于7,采用冒泡排序
if (len < 7) {
for (int i=off; ioff && x[j-1]>x[j];...
分类:
其他好文 时间:
2014-05-07 05:14:35
阅读次数:
279
题目:
在数轴上有n个区间,每个区间都是连续的整数区间。现在要在数轴上任取一堆元素,构成一个集合V,要求每个区间和V的交集至少有两个不同的元素。求V的最小的元素个数。
问题分析:
可以使用贪心算法,最终结果肯定是小于大于2×n的,如果两个集合之间有相同的元素,那么选相同的元素必然会使结果更小,当我们以e排序后,如果有相同的必然是最后的元素。所以贪心的策略就是如果一个区间最...
分类:
其他好文 时间:
2014-05-07 04:04:23
阅读次数:
294
比赛时候看完题目就觉得是拓扑排序,当时心里隐隐觉得跟相框叠加那个题有点相似的
然后wzy问我no solution 是什么情况,我就一直去想是不是构成了什么排列就一定是no solution
其实只用再参考相框叠加那个题往前想一丁点就够了,就是从最后涂的那一层开始往前找,每一次都必然有一行或一整列是一样的
每次按逆字母序删除这一行或列就是了。
拓扑排序的题总是类似而且简单的,找到关系,敲代...
分类:
其他好文 时间:
2014-05-07 03:29:38
阅读次数:
259
对站长来说,百度、谷歌的每一次算法变动,确切来讲应该是自己网站在搜索引擎的排名、收录情况,都会牵动站长的神经。总有许多人在QQ群、论坛里讨论这些问题。
很多站长会天天查看网站SEO数据,比如收录量、关键词排名等等,因为它间接的反应了你的权重高低,甚至的流量情况。有流量就有收入,直到今天,这也是“真理”。
算法为什么变动
很早以前,我想开一个栏目,专门记录搜索引擎的每一...
分类:
其他好文 时间:
2014-05-06 19:11:13
阅读次数:
287
数值算法:解方程、微积分、数值分析 多用在工程设计
非数值算法:搜索、排序、拆分、合并 多用在系统
一、线性搜索
1.算法
1.1从头开始,依次将每一个元素与查找目标进行比较
1.2或者找到目标,或者找不到目标
2.评估
2.1平均时间复杂度:O(N),线性时间
2.2对数据没有任何规律性要求 穷举法
二、二分搜索(折半搜索)
1.算法
1.1假设表中...
分类:
其他好文 时间:
2014-05-06 15:36:44
阅读次数:
260