【数据结构与算法】众数、中位数

今天学这个东西的时候,看到这种线性的数据结构加上排序步骤,很难不想写个程序来跑跑。 先来说说中位数,这个比较有思路。 具体的操作步骤应该是:排序 => 获得数据元素个数n => 是奇数 ? (n+1) / 2 : n / 2

Continue reading

高效率的沟通绝不会从在吗开始

“在吗?” 据考证,“在吗”发起聊天的起源,是QQ刚盛行的年代,大家都没有手机,升级普遍需要在电脑上挂QQ。为了确认在线的是不是本人而使用的。 那么,现在还真的需要这句话吗?

Continue reading

【数据结构与算法】二叉树

二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。

Continue reading

“我有厌蠢症”

“厌蠢症”大概是迄今为止我听到的唯一一个能与近些年很火的一个心理测试——MBTI抗衡的。 前两年MBTI这东西刚出来时,很多人争着抢着去做测试,把自己标签上的四个字母如数家珍,甚至为了维持人设,去扮演人格,倒反天罡。但不能否认,这个测试确实能在与陌生人的聊天中快速找到话题切入点,以两大种类属性人格为根,横向延伸出许多话题,建立起临时的友谊。过两天,结果就是空间互赞,再不联系。

Continue reading

这样的博客的意义是?

博客文章加密码,意义何在? 写博客的意义是? 写博客的意义之一,不是放大自己的声音,表达自己的观点吗? 这就要牵扯到你写博客的目的。如果你说,你写博客是为了取悦自己,那为什么要把文章发出来?取悦自己是真的吗?还是对自己网站没有流量的自我安慰?不允许他人看见,那我只能认为您财力精力都很强盛,有财力购买服务器、主题;有精力维护服务器、网站。为什么不写在备忘录里呢?

Continue reading

【数据结构与算法】栈

栈(Stack)是一种后进先出(LIFO)原则的线性数据结构。核心操作包括: 压栈(Push):将元素添加到栈顶 出栈(Pop):移除并返回栈顶元素 查看栈顶(Check)获取但移除栈顶元素 判空(is_empty)检查栈是否为空 使用动态数组实现栈,包含三个核心属性:

Continue reading

【数据结构与算法】冒泡排序

通过相邻元素的两两比较,将较大的元素逐步“冒泡”到数组末尾,每轮排序确定一个最大元素的最终位置。 void bubble_sort(int arr[], int n) { // 最外层控制循环轮数 n-1轮 for (int i = 0; i < n - 1; i++) { // 内层循环处理相邻元素比较和交换 for(int j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } // 调用 void print_array(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d,", arr[i]); } printf("\n"); } int main() { int arr[] = {23, 232, 55, 2, 7, 0, 576, 342}; int n = sizeof(arr) / sizeof(arr[0]); printf("排序前:"); print_array(arr, n); bubble_sort(arr, n); printf("排序后"); print_array(arr, n); } n个元素的数组最多需要n-1轮冒泡,如5元素数组需要4轮排序 数学依据:每轮将一个最大值“沉底”,当完成n-1轮时,最后一个元素必然有序 示例验证:

Continue reading

x86-64汇编学习笔记

机器指令,二进制数字,机器语言全局机器指令的集合,CPU通过执行一系列的机器指令完成计算工作。 汇编语言就是为了代替机器指令,使人类能够更加简单地编写程序而诞生的。汇编语言就是机器码的助记符。

Continue reading