V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  documentzhangx66  ›  全部回复第 72 页 / 共 88 页
回复总数  1755
1 ... 68  69  70  71  72  73  74  75  76  77 ... 88  
2022-03-19 05:19:31 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@yzbythesea

1.我写的是:基于 链表与静态数组 的高级复合型数据结构,不是 单纯的 链表或静态数组。这种高级复合型数据结构,几乎可以组成所有的数据结构,包括各种树、森林、网、环等等。你说的 BTree 已经包含在我说的里面。BTree 这种说法不严谨,准确来说是 B-Tree 或 B+Tree 。

2. Mysql 主流引擎,使用的结构有好几种,从 B-Tree 、B+Tree 、R-Tree 、Hash 结构,都有;而且 B-Tree 与 B+Tree 还存在争议。
2022-03-19 05:04:29 +08:00
回复了 mikewang 创建的主题 程序员 C 语言底层开发怎么样?
@hello2090

既然你说,你不懂我想表达什么,那我掰碎了讲讲:

你对 C 、C++、Java 、就业、岗位与薪资,与其他人的理解有较大差距。

你甚至有点玻璃心,想来抬杠。比如 89 楼 与 93 楼。

这种情况下,楼主可能会被你误导。
2022-03-19 04:56:04 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@GeruzoniAnsasu

我 27 楼评论的意思是,你在 26 楼评论我之前,需要认真看看我在 22 楼的评论的最后一段文字,因为那段文字里,有这样的一句话:“基于 链表与静态数组 的高级复合型数据结构”。这句话其实涵盖了几乎所有的数据结构,包括你在 26 楼写的结构。

另外重排序,并没有你在 28 楼里写的喂给数据库的这种说法。现代数据库的结构,也并不是你在 26 楼说的这么简单,其存储结构、内存结构、专用的排序区域与策略等等,比教科书中纯粹的 B+树要复杂很多。教科书为了教学,只会教最简单的东西。
2022-03-19 02:59:07 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@GeruzoniAnsasu 我写的最后一段,文字太长,没排好版,导致你没注意看清楚...
2022-03-19 00:01:04 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
对于静态数组:
22 、23 、24 、25 、26 、-1 、-1

value 大概率是保存在连续的内存空间。此时插入一个 21 并保持排序,那么这 5 个 value 在内存里的位置,就需要整体后移。

但有一种东西,叫链表,他们在内存里,大概率是这种样子:

HeadNodeID:3 。

NodeID:1 ,Value:25 ,NextNodeID: 5
NodeID:2 ,Value:24 ,NextNodeID: 1
NodeID:3 ,Value:22 ,NextNodeID: 4
NodeID:4 ,Value:23 ,NextNodeID: 2
NodeID:5 ,Value:26 ,NextNodeID: -1

看着比较复杂,如果按 Value 排序,上图就变为:

HeadNodeID:3 。

NodeID:3 ,Value:22 ,NextNodeID: 4
NodeID:4 ,Value:23 ,NextNodeID: 2
NodeID:2 ,Value:24 ,NextNodeID: 1
NodeID:1 ,Value:25 ,NextNodeID: 5
NodeID:5 ,Value:26 ,NextNodeID: -1


此时,插入 21 ,并且保持排序,就只需要:

增加一个 Node:
NodeID:6 ,Value:21 ,NextNodeID: 3

然后把 HeadNodeID ,从 3 改为 6 就行。

数据库内的表的数据结构,大部分是基于 链表与静态数组 的高级复合型数据结构,并不是单纯的静态数组,所以你不需要过分担心这个问题,只需要设计好表结构与索引,然后正常使用就好,数据库不会傻到你加个值,重排序就把所有数据往后移。真实情况是,就像前面的例子,数据库只是加了个链表节点,然后修改了一下其他少数几个链表的指针,以及头结点,以及相关索引等。
2022-03-18 23:38:23 +08:00
回复了 wapzjn 创建的主题 Linux 推荐一个适合 Linux 的笔记本?
给个新思路。

我是喜欢全尺寸键盘 + 物理鼠标,但对机器性能、屏幕效果,反而不在乎。

后来我选择 mini 主机 + 便携屏 + 充电宝 + 全尺寸键鼠,这种选择反而容易安装 Linux 。
2022-03-18 23:35:11 +08:00
回复了 mikewang 创建的主题 程序员 C 语言底层开发怎么样?
@hello2090

1.我在前面讲的东西,是一种共识性的、概率性的,你完全可以去看看各厂对这方面的职位要求,也可以和 HR 们聊聊,看看是不是这回事。

如果你只是为了反对我,在这种共识里,找小概率的反例,不用你找,我也能找一堆出来。


2.你的 C 与 Java ,我认为学的并不精通。面向对象,是一种思想,Java 只是对它实现了语法糖。C 语言,甚至汇编,你也可以模拟出一些面向对象的简单特性。当你在吐槽“C 可是连类都没有的,所有的变量定义都得放在函数开头的啊”时,已经暴露了这个问题。

你说你以 C++,面过 FB, Amazon ,这一点都不重要,重要的是,你过了没,以及这两家公司,对你的评价。我觉得前者你不会说,后者你也不知道。


3.也许你想踩 C/C++,来抬 Java ,但我觉得这种操作并不合适。任何语言,都有自己的优缺点,都有自己的适合场景。当你针对工资、层次这些角度,甚至带着玻璃心去看问题时,只会造成偏见。

还是那句话,缺钱,就选工资高的;不缺钱,就选自己喜欢的。拉踩很没意思。

我甚至早期有段时间天天用 PHP ,现在经常写 Python ,这种性能上不入流的语言,你是不是会讥讽我,甚至同情我?
2022-03-18 21:54:15 +08:00
回复了 mikewang 创建的主题 程序员 C 语言底层开发怎么样?
选 C ,更能让你成长。

但对于就业来说,虽然 C/C++因为门槛高而造成工资高,但岗位却比 Java 少得多,所以不一定比 Java 更好就业。
2022-03-18 21:53:06 +08:00
回复了 mikewang 创建的主题 程序员 C 语言底层开发怎么样?
@hello2090

并不是说 C 一定比 Java 高人一等,而是 C 学习门槛高、需要知道的知识更多、需要踩得坑更多、需要做的实验更多。

Java 写很多东西可以直接无脑 List ,因为 Java 的公认主要目的是实现功能;

而 C 的公认主要目的是追求性能与性价比,需要考虑硬件结构、各设备情况与性能,写的时候还要时刻注意数据结构与算法等等。

换句话来说,当你追求钱的时候,选 C 就没错。但如果你不在乎钱,仅仅只是喜欢轻松编程,那么选 Java ,同时不需要在乎 C 的那些人怎么看待你。

但是,当你不缺钱,对技术又有追求时,我建议,所有主流语言,你都要熟练,然后你就没有到底选哪种语言的问题了。并且,对于高手来说,编程语言、OS 、CPU type 等等,都不是问题。
2022-03-18 21:23:43 +08:00
回复了 documentzhangx66 创建的主题 数据库 请问有没有 Oracle 相关的微信群、QQ 群?
@gt15207 谢谢~
2022-03-17 19:32:39 +08:00
回复了 lslvxy 创建的主题 程序员 Java 中 Mysql 的状态列用 int 还是用 varchar 好点
楼上说用枚举其实才是最正确的。原因是,枚举的本质,是对数据与意义,做强一致性约束。这种约束能强迫大家统一数据与规范,能提高整个系统的正确性与可靠性。当然,万事万物都有缺点,枚举的缺点是效率低,具体一点是,每次使用时,都要先查一下;如果需要创建新的状态,还要走一个申请流程,还要查一下是否重复或冲突。
2022-03-17 19:26:35 +08:00
回复了 lslvxy 创建的主题 程序员 Java 中 Mysql 的状态列用 int 还是用 varchar 好点
@lmmlwen 微软的蓝屏代码,本质是就是枚举。你觉得你比微软强?证明一下。
2022-03-17 19:19:28 +08:00
回复了 yurong333333 创建的主题 问与答 疑问:为什么很多医院的内网服务器都是 windows?
Windows 好用,图形界面只是一个方面而已。

还有物理机上面的装机、匹配驱动、下载安装卸载软件、上网、杀毒等等。这些看似非常日常的操作,在 Linux 下面,却非常折腾。

你自己买台 Linux 小主机,试一次上面这些操作,你就知道为啥大家喜欢 Windows 了。

目前能顺利+不踩坑地完成上述操作的,我见过的只有大品牌的服务器。
东芝是我一辈子见过第一个牌子,京东自营全新,半年就坏。
2022-03-15 22:57:59 +08:00
回复了 echooo0 创建的主题 程序员 centos 挂载新硬盘到根分区
你的目标是,新磁盘挂载到根分区。

方案 1:新磁盘与旧磁盘合并,让可用空间最大化利用,需要使用 lvm ,难度大。

方案 2:新磁盘只作为一个子目录,挂载到根目录下面。难度简单。

你的情况是,你是个新手。建议使用方案 2 。

步骤:
先不要插入新磁盘,lsblk ,了解目前磁盘情况。

然后插入新磁盘,lsblk ,看看新磁盘的卷标。比如 /dev/sdb

接着,用 parted 给新磁盘分区。不要用 fdisk ,它不支持大容量磁盘。

给新分区格式化。

修改分区表,进行永久挂载。
2022-03-14 21:08:36 +08:00
回复了 bs10081 创建的主题 NAS [群暉購買問題] DS920+ 近期是否會更新至 DS922+
内存条 non-ECC ,这你敢用?
2022-03-14 14:53:50 +08:00
回复了 Geekerstar 创建的主题 Elasticsearch 公司的 ES 被攻击了,索引全被删了,怎么办?
我连 nginx 与 ssh 都不敢开公网,外面还得套一层 vpn ,你特么数据库直接开公网,我也是佩服。
@pennai MongoDB 是通用型数据库,与 inotify 不是同一种东西,所以没有这种机制。但你可以自己写代码,添加更多机制。MongoDB 更灵活,开发、管理、维护都更方便,但牺牲性能。
1 ... 68  69  70  71  72  73  74  75  76  77 ... 88  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2107 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 16:02 · PVG 00:02 · LAX 09:02 · JFK 12:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.