package com.smile.test.sort.bubble; /** * 冒泡排序 时间复杂度O(n^2) */ public class Bubble { static void sort(Comparable[] a){ for (int i = a.length-1; i>0; i- ...
分类:
编程语言 时间:
2021-04-16 12:06:55
阅读次数:
0
/** 硬币找零:三个硬币面值2,5,7,希望用最少的硬币数拼出27* 分析:用动态规划解* f[X]:最少的硬币拼出X,设最后一步用a拼出了27,a可以是2/5/7,那么* f[27]=f[27-a]+1,因为不知道a具体是多少,所以,f[27]=min{f[27-2]+1,f[27-5]+1,f ...
分类:
其他好文 时间:
2021-04-16 12:02:09
阅读次数:
0
数组 1、数组中的数据类型是一致的; 2、数组元素在内存中是连续的; 3、数组中每个元素占用空间大小是相同的(length); 4、数组元素存放的是数据的地址的值。 5、查找数组中第i个元素,首个元素的地址address + (i * length),时间复杂度为O(1); 特点: 1、大小固定 2 ...
分类:
编程语言 时间:
2021-04-15 12:32:35
阅读次数:
0
比如外存中有100G的字符串文件,1G的内存,对字符串进行排序操作。 1.首先将100G的内容分成若干个小部分,每个部分不超过500MB。分别读取这些小部分进行排序,然后写入到外存中。这样就得到了若干个已经排好序的小部分。 2.多路归并排序,(相对二路归并而言)。对于k个已经排好序的小部分,每次取出 ...
分类:
编程语言 时间:
2021-04-13 12:30:46
阅读次数:
0
P 问题描述:可以在多项式时间复杂度内求解; 举例:二分查找(O(logn))、快排(O(nlogn)) NP 问题描述:可以在多项式时间复杂度内验证是否是可行解的问题;有指数时间复杂度的求解方法;这类问题可以用启发式算法求解,但只能得到一个相对的最优解; 举例:所有P问题(可以在多项式时间复杂度内 ...
分类:
其他好文 时间:
2021-04-13 12:23:13
阅读次数:
0
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复 ...
分类:
编程语言 时间:
2021-04-13 12:03:01
阅读次数:
0
2021-04-09:rand指针是单链表节点结构中新增的指针,rand可能指向链表中的任意一个节点,也可能指向null。给定一个由Node节点类型组成的无环单链表的头节点 head,请实现一个函数完成这个链表的复制,并返回复制的新链表的头节点。 【要求】时间复杂度O(N),额外空间复杂度O(1) ...
分类:
其他好文 时间:
2021-04-10 13:17:53
阅读次数:
0
int func(int n){ int i = 0,sum = 0; while(sum < n) sum += ++i; return i; } 求时间复杂度 A. O(logn) B. O(n^1/2) C. O(n) D. O(nlogn) ++i, i = 1,2,3,4,5,···,k。 ...
分类:
其他好文 时间:
2021-04-10 13:08:02
阅读次数:
0
I.III.CF1009F Dominant Indices 大约一年前,我曾用线段树合并硬刚过了这题,现在是正解。 可以设 \(f_{i,j}\) 表示 \(i\) 子树中深度为 \(j\) 的点的数量。于是直接长剖优化即可。时间复杂度 \(O(n)\)。 虽然因为我极其垃圾的实现导致还没有线段树 ...
分类:
其他好文 时间:
2021-04-10 12:52:09
阅读次数:
0
Description 给定数组arr和整数num,求arr的连续子数组中满足:其最大值减去最小值的结果大于num的个数。请实现一个时间复杂度为O(length(arr))的算法。 Input 输入第一行为测试用例个数。每一个用例有若干行,第一行为数组,每一个数用空格隔开,第二行为num。 Outp ...
分类:
编程语言 时间:
2021-04-09 13:23:00
阅读次数:
0