数据结构与算法
文章平均质量分 52
算法
温娉哲
I can do this all day
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java与PHP语言实现RC4加解密
RC4加解密简介 RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。 算法简单,运行速度快,而且密钥长度是可变的,可变范围为1~256字节(8-2048比特) 密钥流:RC4算法的关键是根据明文和密钥生成相应的密钥流,密钥流的长度和明文的长度是对应的,也就是说明文的长度是500字节,那么密钥流也是500字节。当然,加密生成的密文也是500字节,因为密文第i字节=明文第i字节^密钥流第i字节 状态向量S:长度为256,S[0],S原创 2022-03-20 15:34:06 · 1116 阅读 · 0 评论 -
【数据结构与算法】合并K个排序链表(Java版)
题干描述 合并K个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 解法一 让链表两两合并,合并之后的链表再和第三个链表合并。 时间复杂度:k 为链表个数,n 为总的结点数,两两归并,每个结点会被归并 log(k) 次,所以总的时间复杂度为 O(nlog(k)) 。空间复杂度为 O(1)。 publi原创 2020-07-20 09:09:55 · 597 阅读 · 0 评论 -
数据结构之链表
三种常见的链表结构 1、单链表 2、循环链表 3、双向链表 单链表 链表通过指针将一组零散的内存块串联在一起。把内存块称为链表的“结点”。为了将所有的结点串起来,每个链表的结点除了存储数据之外,还需要记录链上的下一个结点的地址。把这个记录下个结点地址的指针叫做后继指针next。第一个结点叫做头结点,最后一个结点叫做尾结点。头结点用来记录链表的基地址,有了头结点,就可以遍历整条链表,而尾结点特殊的地方是:指针不是指向下一个结点,而是指向一个空地址NULL,表示这是链表上最后一个结点。 单链表的插入和删除操作原创 2020-05-27 15:52:16 · 602 阅读 · 1 评论 -
经典排序算法的时间复杂度和空间复杂度
时间复杂度 一、常见的七种时间复杂度:大O表示法–Big O notation O(1):常数复杂度 Constant Complexity O(log n):对数复杂度 Logarithmic Complexity O(n): 线性时间复杂度 Linear Complexity O(n^2): N平方 N square Complexity O(n^3): N立方 N cubic Complexity O(2^n):指原创 2020-05-12 16:17:38 · 1873 阅读 · 0 评论 -
数据结构与算法之知识图谱
知识图谱 数据结构与算法是程序员的内功心法,为了能对数据结构和算法有一个全面的认识,献上一张知识图谱。看到这张图也不要被吓退,在学习的过程中,一定会遇到“拦路虎”,如果你想看一遍就能把所有知识都掌握,这肯定是不可能的。学习知识的过程本身就是反复迭代,不断沉淀的过程。 前行路上的媛媛们,奥利给!!!✨???????? ...原创 2020-05-09 09:05:43 · 966 阅读 · 0 评论 -
为什么数组要从0开始编号?
前言 我们都知道,在每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常基础,简单,但是估计很多人都没有理解这个基础数据结构的精髓。 数组的定义 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 数组定义中有几个关键词,理解了这几个关键词就能彻底掌握数组的概念了,让我们一起...原创 2020-04-25 09:10:25 · 2102 阅读 · 5 评论 -
单链表反转迭代法和递归法的实现【详解】
前言 单链表反转是程序员必备的基本素养,经常在面试,笔试的过程中出现。理通实现思路,代码实现并不难。 首先我们来了解一下单链表结构。单链表是一种常见的数据结构,由多个结点连接而成,每个结点后面都会跟一个指针,指向下一个结点的内存地址。所以,每一部分就是有一个数据域和一个指针域构成。 LeetCode的反转链表原题描述: 题目描述:反转一个单链表 输入: 1->2->3->4-&g...原创 2020-04-01 11:41:23 · 938 阅读 · 0 评论 -
判断字符串是否有效
前言 给定一个只包括 ‘(’ ,’)’ ,’[’ , ‘]’ ,’{’ ,’}’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 比如: 输入字符串:“{ [ })” 输出:false 输入字符串:“({})” 输出:true 代码实现 package com.algorithmic.Cha...原创 2020-03-27 19:57:30 · 1582 阅读 · 0 评论 -
雪花算法
雪花算法为什么以雪花命名? 雪花(snowflake)在自然界中,是极具独特魅力,又变幻莫测的东西: 1、雪花属于六方晶系,它具有四个结晶轴,其中三个辅轴在一个基面上,互相以60度的角度相交,第四轴(主晶轴)与三个辅轴所形成的基面垂直 2、雪花的基本形状是六角形,但是大自然中却几乎找不到俩朵完全相同的雪花,每一个雪花都拥有自己独特的图案,就像地球上找不出两片完全相同的树叶的一样。许多学者用显...原创 2019-02-27 20:41:03 · 1347 阅读 · 31 评论
分享