查找无序数组的中位数,要想时间复杂度为O(n)其实用计数排序就能很方便地实现,在此讨论使用快速排序进行定位的方法。 1、中位数定义 2、算法思想 3、Java代码实现 4、时间复杂度分析 5、附录 中位数一般两种定义: 第一种: 排序后数组的中间位置的值,如果数组的个数是偶数个,则返回排序后数组的第 ...
分类:
编程语言 时间:
2018-01-26 20:59:15
阅读次数:
241
912E - Prime Gift 思路: 折半枚举+二分check 将素数分成两个集合(最好按奇偶位置来,保证两集合个数相近),这样每个集合枚举出来的小于1e18的积个数小于1e6。 然后二分答案,check时枚举其中一个集合,然后找到另外一个集合小于mid/该元素的元素有多少个,这里用到一个双指 ...
分类:
其他好文 时间:
2018-01-25 20:46:00
阅读次数:
176
知识点总结报告 知识点: 插入排序 (原理)每次将一个待排序的元素按其关键字大小插入到前面已经排好序的子表中的适当位置,直到全部元素插入完成为止。主要有三种排序方法直接插入排序,折半插入排序,希尔排序。 直接插入排序 将当前无序区的开头元素R[i](1<=i<=n-1)插入到有序区R[0...i-1 ...
分类:
编程语言 时间:
2018-01-24 22:05:12
阅读次数:
182
题意 : 以下两个问题的物品都只能取有且只有一次 ① 给你 N 个物品,所有物品的价值总和不会超过 5000, 单个物品的价格就可达 10^10 ,背包容量为 B ② 给你 N (N ≤ 40 ) 个物品,物品的单个价值和重量都达到 10^15 问你在背包容量为 W 给出 ① 和 ② 问题条件下背包 ...
分类:
其他好文 时间:
2018-01-20 12:32:31
阅读次数:
382
1.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93需要进行多少次比较() A. 2 B. 3 C. 4 D. 5 low = 0, high = 10 mid=(low+high)/2=5 93>55 low = 6, high ...
分类:
编程语言 时间:
2018-01-17 14:27:05
阅读次数:
239
C语言查找算法之顺序查找、二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些。 ...
分类:
编程语言 时间:
2018-01-16 18:29:02
阅读次数:
204
//折半查找 public int halfFind(int[] arr,int key) { int min = 0; //数组第一个下标 int max = arr.length -1; //数组最大下标 int mid = ( min + max ) / 2; //数组中间下标 //如果中间值... ...
分类:
编程语言 时间:
2018-01-16 00:58:54
阅读次数:
164
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。 二分查找 算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大, ...
分类:
其他好文 时间:
2018-01-15 20:19:18
阅读次数:
116
基本思想: 说明:元素必须是有序的,如果是无序的则要先进行排序操作。 也称为是折半查找,属于有序查找算法。用给定值k先与中间结点的关键字比较,中间结点把线形表分成两个子表,若相等则查找成功;若不相等,再根据k与该中间结点关键字的比较结果确定下一步查找哪个子表,这样递归进行,直到查找到或查找结束发现表 ...
分类:
其他好文 时间:
2018-01-14 18:38:16
阅读次数:
150
【CF839E】Mother of Dragons 题意:给你一张n个点,m条边的无向图。你有k点能量,你可以把能量分配到任意一些点上,每个点分到的能量可以是一个非负实数。定义总能量为:对于所有边<a,b>,a的能量*b的能量 的和。让你最大化总能量。 $n\le 40,k\le 1000$ 题解: ...
分类:
其他好文 时间:
2018-01-14 15:58:34
阅读次数:
108