Zaki Blog

Meet 2025

优先队列和堆到底有什么区别

What's the difference between Priority Queue and Heap?

之前一直对优先队列和堆之间的关系有一点点迷惑,昨天整理了堆,堆化以及堆排序的一些内容,今天主要是对于优先队列ADT的一些内容做一些小结,并且清楚优先队列和堆之间的一种关系。 在这浏览这篇博客之前,再温习一遍前文所提到的堆和堆排序 然后我们进入今天的正题。 优先队列 优先队列(Priority Queue)其实就是一种特殊的队列,是一种特殊的数据结构。它的工作就是找出,返回和删...

超详细的堆排序实现过程

Implementation Process of Heap Sort

堆排序的平均时间复杂度均为O(nlogn),也是所有排序算法里极其重要的一种。堆排序的实现可以节省空间,但免不了会牺牲稳定和时间。我在这做一个详细的堆排序实现的过程演示和c实现的完整代码。 堆(Heap) 堆就是用数组实现的二叉树。堆根据“堆属性”来排序,“堆属性”决定了树中结点的位置。 ####特点: 堆分为两种:最大堆和最小堆,两者的差别在于节点的排序方式。 1.最大...

静态队列

A summary of Static Queue

队列(Queue)在整个数据结构中也是非常重要的一部分。之前经历的发现不论是期中考试还是assignment,队列的出镜率是非常高的。链式队列由链表实现,静态队列则由数组实现。这里我简单做一个复习小结。 定义 队列就是一种可以实现“先进先出(FIFO)”的存储结构。 分类 链式队列–用链表实现 静态队列–用数组实现 (静态队列通常都是...

栈的总结

A summary of Stack and Code part

之前一直只学习栈,有一次看到了“堆栈”这个词,后来才知道实际上栈(Stack)的全称就是“堆栈”。那为什么不叫堆,因为堆这个名字被另外一种叫heap的数据结构给用了,那莫得法子只好用栈喽。而就Stack来说,它的意思指的就是一件东西堆在另一个东西上的结构。今天刚好在这做一个关于栈(Stack)的小结。 引入 ####引入代码 include <stdio.h>...

近日对于哈希表的归纳总结

A summary of Hash Table

最近对于哈希表(Hash Table)这一块一直存在比较大的疑问,所以我试图用博客的形式整理整个哈希表的来龙去脉。 哈希表定义 哈希表(Hash table),说白了就是一种可以用来储存信息的数据结构。 哈希表里的信息主要分为两部分,一部分是key,一部分则是value,我们把它统称为哈希表的关键码值。 工作原理 哈希表需要某种线索并且其中要有某种含义或者记录,这种过程就像...

围观github上的“春节十二响”c语言程序

is "spring 12 biubiu" github program in c really does work?

为什么要写这篇博客,因为我觉得这个实在是太沙雕太有趣了哈哈哈哈 春节十二响 看过《流浪地球》的都知道,里面李一一提到过一个程序名字叫做“春节十二响”。 万万没想到,我竟然在github上真的发现有人搞了一个“春节十二响”,原作者是一位用户名为picasso250的github用户,我怀着十分好奇的心情打开了这位作者的项目。 整个代码为C语言所写,虽然只是一个函数框架,行数...

Mac如何利用终端直接编译C代码

How Mac uses terminal to compile c code directly

关于MacOS系统直接利用终端(Terminal)编译并运行C代码的过程和演示 前言 这两天偶尔测试代码的时候,总是觉得每次用Xcode创建工程的时候费时费力,虽说有些在线网站(诸如codepad) 也可以编译一些短代码,但是总体来讲在网站上敲代码的感觉,可能就不是那么爽。 macOS的内核是BSDUnix,可以被看作类似于一个你电脑自带的gcc编译器。也就是说,MacOS是...

Xcode命令行工具管理

如何切换Xcode命令行工具

安装 xcode-select --install Xcode版本切换 显示当前使用的xocde版本 $ xcode-select --print-path 选择Xcode中的默认版本 $ sudo xcode-select -switch /Applications/Xcode.app

Xcode9 无线调试功能

zsh的快速配置

支持:Xcode 9 及 iOS 11 使用数据线连接 iPhone 到电 Mac,Mac 和 iPhone 必须在同一个局域网 1. 打开设备列表 使用快捷键盘 ⇧⌘2 或 在 Xcode 菜单栏选择 Window > Devices and Simulators,打开设备列表 2. 勾选在线调试按钮 3. 拔掉数据线 这时就可以无线调试了。

Mac终端(zsh)下用代码编辑器打开文件或目录

更改 zsh 配置文件,在终端使用sublime、vscode、atom快速打开文件或目录

前言 最近在喵神 onevcat 的直播中发现喵神直接在终端就能用 vsCode 打开当前代码目录,非常方便。 在zsh终端中 使用 code .,在 vcCode 打开当前文件目录 正文 配置终端环境 终端环境为:iTerm2 + zsh zsh 使用 oh_my_zsh 配置 安装zsh 查看你的系统有几种shell cat /etc/shells 显示 /b...