一 排序算法的分类 二 时间复杂度和空间复杂度 1.时间复杂度 1.1 时间复杂度的计算方式 1).用常数1代替运行时间中所有的加法常数 2)修改后的运行次数函数中,只保留最高阶项 3)去除最高阶项的系数 1.2 常用算法的时间复杂度 这个需要牢记 2.空间复杂度 空间复杂度是一个算法在运行时临时占 ...
分类:
编程语言 时间:
2020-07-26 01:05:36
阅读次数:
76
日历有点奇怪,显示今天是 7 月 24 了都。 :) Alg https://leetcode-cn.com/problems/count-number-of-nice-subarrays/ 遍历所有子数组。 - 时间复杂度 : O(n^3) - 空间复杂度 : O(1) 从上面的思路进行截取,对于 ...
分类:
其他好文 时间:
2020-07-24 21:42:30
阅读次数:
69
常用排序算法: 冒泡排序 插入排序 快速排序 选择排序 排序算法的时间&&空间复杂度 排序算法的稳定性 冒泡排序——bubbleSort 是一种简单的排序算法,重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把他们交换。走访数列的工作是重复的进行直到没有需要交换。 如果两个数关系不正确 ...
分类:
编程语言 时间:
2020-07-24 10:07:24
阅读次数:
101
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 ...
分类:
编程语言 时间:
2020-07-23 18:56:04
阅读次数:
77
1、最好情况、最坏情况、平均情况时间复杂度冒泡、插入都是O(n^2);快排、归并都是O(nlogn);桶、计数、基数都是O(n)2、排序算法的内存消耗原地排序算法:空间复杂度是 O(1) 的排序算法;冒泡排序,插入排序3、排序算法的稳定性稳定排序:如果待排序的序列中存在值相等的元素,经过排序之后,相 ...
分类:
编程语言 时间:
2020-07-22 01:58:40
阅读次数:
69
前言本篇文章收录于专辑:http://dwz.win/HjK你好,我是彤哥,一个每天爬二十六层楼还不忘读源码的硬核男人。大家都知道,数据结构与算法解决的主要问题就是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更节省存储空间。所以,“快”和“省”是衡量一个算法非常重要的两项指标,也就是我们经常听到的时间复杂度和空间复杂度分析。那么,为什么需要复杂度分析呢?复杂度分析的方法论是什么呢?这就
分类:
编程语言 时间:
2020-07-21 22:09:42
阅读次数:
59
动态开点线段树 前置芝士 众所周知,普通线段树空间复杂度是 \(O(n*4)\) 所以当n很大的时候,如果正常的去建一颗线段树,开4倍n空间显然会炸内存 怎么办呢? 这个时候,动态开点线段树出现了。 概念 ? 动态开点线段树是一类特殊的线段树,与普通的线段树不同的是,每一个节点的左右儿子不是该点编号 ...
分类:
其他好文 时间:
2020-07-19 18:01:19
阅读次数:
66
###楔子 以下三个问题$n\leq 100000$ #####一个1n的排列 随机在某个位置插入一个1n的数字并打乱这n+1个数字。求这个数字是什么。 \(constraints:\) 时间要求$O(n)$ 空间复杂度要求$O(1)$ #####一个数组 每个位置上有一个范围在1~n的数字 Q次询 ...
分类:
其他好文 时间:
2020-07-18 16:05:44
阅读次数:
68
1 class Solution { 2 public int searchInsert(int[] nums, int target) { 3 int length = nums.length; 4 int left = 0, right = length - 1, ans = 0; 5 whil ...
分类:
其他好文 时间:
2020-07-18 00:57:17
阅读次数:
92
简述 Manacher算法,又称马拉车算法,它是用于求一个字符串的最长回文子串长度的算法,时间和空间复杂度为O(n)。 算法思想 求一个字符串的最长回文子串长度,我们如果用暴力来做,我们就要取出这个串的所有子串,然后判断这个子串是不是回文串,复杂度是n方的。 那么马拉车为何如此神奇能做到O(n)呢? ...
分类:
编程语言 时间:
2020-07-17 22:10:08
阅读次数:
116