![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
数据结构
香蕉君
Heros come and go,but legends are forever.
展开
-
hihoCoder 1515 分数调查
小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低?Input第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。 以下M行每行三原创 2017-11-27 21:59:21 · 415 阅读 · 0 评论 -
CSU 2070 Seating Chart
2070: Seating Chart题目直通车:Seating Chart 题目大意:翻译完之后发现是先用map映射,离散化,再对序列求逆序数。解题思路:映射成1到n的整数,离散化之后,用O(nlogn)O(nlogn)O(nlogn) 的方法求逆序数和,有线段树,归并排序等方法,这里采用归并排序即可。最后的答案是long long类型,稍微注意一下。#include&...原创 2018-04-16 20:31:00 · 278 阅读 · 0 评论 -
字典树
字典树(hihocoder1014)字典树又称前缀树或者trie树,一种有序数据结构,用于保存关联数组,键通常是字符串。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它的插入和查询时间复杂度都为 O(k) ,其中 k 为 key 的长度,与 Trie 中保存了多少个元素无关。;Trie 的缺点是空间消耗很高。 1.构建树:构建...原创 2018-04-08 01:49:56 · 131 阅读 · 0 评论 -
数据结构——堆排序
LCS最长公共子序列 一类问题的主体是:给定两个字符序列,形如str1=a1,a2...,ai;str1=a1,a2...,ai;str1=a_1,a_2...,a_i; str2=b1.b2...,bj.str2=b1.b2...,bj.str2=b_1.b_2...,b_j.寻找其中最长的相同子串。这里的子串不必要连续。 这样的问题就是寻找最长公共子序列。 这样的问题可以从动...原创 2018-03-05 20:38:39 · 143 阅读 · 0 评论 -
数据结构——快速排序
数据结构——快速排序 排序算法中的快速排序应该是赫赫有名了,代码简单,效率却十分的高。它是一种改进的冒泡算法。同样是通过依次比较两个数字然后交换位置,这一点是相同的,但是冒泡算法是相当效率低的,原因是它进行了很多不必要的比较和交换,比如:你若是为了将第一个数字下沉到最后的位置,从而移动了所有的数字,并且这些移动对其他数字而言是毫无意义的,从而诞生了快速排序。可以它每次排一个数字,这一点是原创 2018-01-06 13:25:54 · 1451 阅读 · 0 评论 -
数据结构——希尔排序
数据结构——希尔排序 希尔排序是一种插入排序,它对直接插入排序进行优化,使算法复杂度降低达到更低,最好的情况是n(log2n)2n(log_2 n)^2 。其优化的思想如下: 普通的直接插入排序是线性的从第一个到最后一个,每次保持一个排好序的数组,再插入一个元素进去,找到自己的位置,插入后不破坏有序性,第一个元素自身就是一个有序的数组。所以初始时是满足的,对第ii个待插入的元素原创 2018-01-05 21:16:16 · 412 阅读 · 0 评论 -
数据结构——堆排序
数据结构——堆排序排序方法很多,各有优势,我们常用的排序方法是属于内部排序的,对辅助空间的使用很少,而时间复杂度可能遇到了限制了,我所知道几种排序方法最快也没有突破nlognnlogn 这个限制。对于平均时间复杂度来说,快速排序已经是这种算法的佼佼者了,但是它的最坏情况恐怕是不能接受的,n2n^2 ;这里推荐一种稍微复杂的排序,叫做堆排序,它基于一种数据结构——堆。才有了很小的时间复杂度,同时原创 2018-01-06 15:26:25 · 13012 阅读 · 0 评论