概述 前面算法系列文章有写过分治算法基本原理和实践,对于分治算法主要是理解递归的过程。二分法是分治算法的一种,相比分治算法会简单很多,因为少了递归的存在。 在计算机科学中,二分查找算法(英语:binary search algorithm),也称折半搜索算法(英语:half-interval sea ...
分类:
其他好文 时间:
2021-07-26 16:54:02
阅读次数:
0
前言: 冒泡,选择:使用了普通双指针法 插入,快速,归并:使用了二分法,递归 冒泡排序 原理:不断比较相邻两个数得大小,把较大的数交换到靠后的位置 def bubbleSort(iList): '''冒泡排序 ''' if len(iList) <= 1: return iList for i in ...
分类:
编程语言 时间:
2021-07-16 17:32:50
阅读次数:
0
?常见基本排序 选择排序 ? 基本思路:从第一位开始标记,每次选出最小数字与标记位交换 代码实现: private static void selectSort(int[] arr) { if(arr == null || arr.length < 2){ return; } for (int i ...
分类:
编程语言 时间:
2021-06-30 17:58:34
阅读次数:
0
二分 求一个序列的最长上升子序列个数。 本程序采用边读边处理 + 二分法。 ll f[maxn], ans = 1; //注意答案个数初始化为1 int main() { ll n = read(); for (int i = 1; i <= n; ++i) { int x = read(); if ...
分类:
其他好文 时间:
2021-06-29 15:59:12
阅读次数:
0
1.认识时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那 ...
分类:
编程语言 时间:
2021-06-20 18:14:51
阅读次数:
0
二分法边界思考(续) 本题思路是使相同长度下序列增长要尽可能慢 package leetCode.动态规划; /** * @author km * @date 2021年06月11日 **/ public class LongestIncreasingSubsequence { public sta ...
分类:
其他好文 时间:
2021-06-13 09:19:49
阅读次数:
0
二分法练习 一、PAT甲级1010 题目描述:给出两个不超过10位的“数字”,给出其中一个数的基数(表示这个数是几进制),现在给出的两个数在各自的进制下是相等的,要求找出另一个数在什么进制下与已给出的数相等,如果不存在就返回impossible 输入中:N1,N2表示输入的两个数;radix表示其中 ...
分类:
编程语言 时间:
2021-06-11 18:11:40
阅读次数:
0
条件: 数组有序 每次查找都跟数组中间位置数字比较大小,如果要找的数字比中间位置的数字小,那查找就从【0,中间位置的下标前一个位置】这个范围查找;如果要找的数字比中间位置的数字大,那查找的范围就变成【中间位置下标的下一个位置,最大位置】。如果要找的数字正好等于中间位置上的数字,那就找到了; 时间复杂 ...
分类:
其他好文 时间:
2021-06-02 12:02:48
阅读次数:
0
目录 数组概述 数组的四个基本特点: 数组声明创建 1、声明数组 2、创建数组 3、内存分析 4、三种初始化 5、数组边界 数组使用 1、For-Each 循环 2、数组作方法入参 3、数组作返回值 多维数组 Arrays 类 1、打印数组 2、数组排序 3、二分法查找 4、元素填充 5、数组转换为 ...
分类:
编程语言 时间:
2021-05-24 02:51:12
阅读次数:
0
参考 https://www.cnblogs.com/wj-1314/p/10291284.html 一句话概括 在n维度空间中取距离目标点最近的K个样本,如果是分类问题,按照多数投票法取分类结果 如果是回归问题,取平均值 根据二分法衍生出来的K-D(K-Dimension K维度)算法可以加速KN ...
分类:
其他好文 时间:
2021-04-24 11:57:18
阅读次数:
0