我的创作纪念日 ---- 2024/3/26

前言

2024.3.26是我在CSDN成为创作者的第128天,也是我第一次真正在网上创作的第128天

当我还在日常创作时,突然发现我收到了一封信

我想我可以分享一下这段时间的感想以及收获 

机缘

在CSDN的这段时间里,我学习到了很多知识,也丰富了我的日常生活

在我编写实战项目的时候,有很多操作我还是不是很了解的,尤其是在学校的实战项目,当我遇到不会的代码时可以利用CSDN来学习我的知识盲区,实战项目结束后我认为将项目写到博客里是很有意义的

我认为当我意识到了写博客的时候我的一个机缘就来了

一是可以帮助别人了解相关方面的思路知识等

二是可以巩固自身的基础

做这件事情不仅仅对自身受益匪浅,对他人亦是莫大帮助

只有当自己需要帮助去观看别人的博客的时候,才能感受到一篇好的博客是有多么重要!!!


收获

目前在这段时间里只创作了22篇博客,跟我想的进度差不多

我给自己的任务是一星期一篇博客, 希望能够对各位有所收获

我的收获即是对知识的巩固,当然如若能帮助到别人那更是我莫大的收获


日常

创作目前已经是我学习、生活中的一部分了

当我学习一个知识点一段时间之后总会忘记一部分,但这时候写博客不仅能帮助回忆,还能帮助其他人,与其他人一起进步学习

不管再忙,或许在夜间听听歌,敲敲键盘,不知不觉的一篇博客就完成了,这种沉浸其中的感觉也是非常不错的,虽然会感觉时间过的很快,但不会觉得这一天白费了


成就

目前大一下学期,学习进度只到了C++,进度不是很快,但我觉得我写的最好的代码就是数据结构的实现了

下面是快速排序的各种实现方法,其中涉及了递归、非递归(栈、队列)

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>// 快速排序递归实现
// 快速排序hoare版本
int PartSort1(int* a, int left, int right);// 快速排序挖坑法
int PartSort2(int* a, int left, int right);// 快速排序前后指针法
int PartSort3(int* a, int left, int right);//快速排序
void QuickSort(int* a, int left, int right);// 快速排序 非递归实现 栈
void QuickSortNonR1(int* a, int left, int right);// 快速排序 非递归实现 队列
void QuickSortNonR2(int* a, int left, int right);//三数取中法,让key值再中间提升快排效率
int GetMidIndex(int* a, int begin, int end)
{int mid = (begin + end) / 2;if (a[begin] > a[mid]){if (a[mid] > a[end]){return mid;}else if (a[begin] < a[end]){return begin;}else{return end;}}else //a[begin] < a[mid]{if (a[begin] > a[end]){return begin;}else if (a[end] > a[mid]){return mid;}else{return end;}}
}int PartSort1(int* a, int left, int right)
{int mid = GetMidIndex(a, left, right);Swap(&a[mid], &a[left]);int keyi = left;while (left < right){//要先找小,因为keyi在左,右边先出发相遇位置一定是小//找小while (left < right && a[right] >= a[keyi])right--;//找大//等号一定要加,因为begin是从keyi开始的while (left < right && a[left] <= a[keyi])left++;if (left < right)Swap(&a[left], &a[right]);}Swap(&a[keyi], &a[left]);return left;
}int PartSort2(int* a, int left, int right)
{int mid = GetMidIndex(a, left, right);Swap(&a[mid], &a[left]);int hole = left;//key记录挖坑位置的值int key = a[hole];while (left < right){while (left < right && a[right] >= key)right--;a[hole] = a[right];hole = right;while (left < right && a[left] <= key)left++;a[hole] = a[left];hole = left;}a[hole] = key;return hole;
}int PartSort3(int* a, int left, int right)
{int mid = GetMidIndex(a, left, right);Swap(&a[mid], &a[left]);int key = left;int prev = left, cur = left + 1;while (cur <= right && prev != cur){if (a[cur] <= a[key]){prev++;Swap(&a[cur], &a[prev]);}cur++;}Swap(&a[left], &a[prev]);return prev;
}void QuickSort(int* a, int left, int right)
{if (left >= right)return;//先排好keyi这个固定位置,再向两边排int keyi = PartSort3(a, left, right);QuickSort(a, left, keyi - 1);QuickSort(a, keyi + 1, right);
}//栈版本,深度优先
void QuickSortNonR1(int* a, int left, int right)
{Stack s;StackInit(&s);//必须先入栈入右区间再入左区间,因为栈是先进后出StackPush(&s, right);StackPush(&s, left);while (!StackEmpty(&s)){left = StackTop(&s);StackPop(&s);right = StackTop(&s);StackPop(&s);int keyi = PartSort1(a, left, right);if (left < keyi){StackPush(&s, keyi - 1);StackPush(&s, left);}if (right > keyi){StackPush(&s, right);StackPush(&s, keyi + 1);}}
}//队列版本,广度优先
void QuickSortNonR2(int* a, int left, int right)
{Queue q;QueueInit(&q);QueuePush(&q, left);QueuePush(&q, right);while (!QueueEmpty(&q)){left = QueueFront(&q);QueuePop(&q);right = QueueFront(&q);QueuePop(&q);int keyi = PartSort1(a, left, right);if (left < keyi){QueuePush(&q, left);QueuePush(&q, keyi - 1);}if (right > keyi){QueuePush(&q, keyi + 1);QueuePush(&q, right);}}
}

这种使用了各种方法学以致用的感觉写出来的代码能够跑出来的时候

感觉是非常好的,就像做出来一道算法题一样,有过之而无不及 


憧憬

目前对于未来的方向就是C++软件开发,所以我会往这个方向不断出发,学习后续知识的同时发布博客(c/c++、数据结构、Linux、MySQL等)

大一大二参加比赛,储备知识,大三找实习,大四收获offer

朝着那个遥不可及的offer一步步前进

做个自己都觉得自己自律的自己!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/773222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——链表(单链表)

大家好&#xff0c;又是我&#xff08;小锋&#xff09;&#xff0c;今天给大家带了一个比较有挑战的章节&#xff08;链表&#xff09;&#xff0c;但是不用担心&#xff0c;小锋会陪大家一起度过。 顺序表的思考与问题 1. 中间/头部的插入删除&#xff0c;时间复杂度为O(N) …

【python】flask模板渲染引擎Jinja2,通过后端数据渲染前端页面

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Spring Cloud 八:微服务架构中的数据管理

Spring Cloud 一&#xff1a;Spring Cloud 简介 Spring Cloud 二&#xff1a;核心组件解析 Spring Cloud 三&#xff1a;API网关深入探索与实战应用 Spring Cloud 四&#xff1a;微服务治理与安全 Spring Cloud 五&#xff1a;Spring Cloud与持续集成/持续部署&#xff08;CI/C…

Eladmin-jpa基于SpringBoot和Vue的前后端分离后台管理系统​

在当今快速发展的软件开发领域&#xff0c;前后端分离的架构模式已经成为主流。这种架构模式不仅可以提高开发效率&#xff0c;还能使系统更加易于维护和扩展。Eladmin-jpa是一个基于Spring Boot 2.6.4、Spring Boot Jpa、JWT、Spring Security、Redis和Vue的前后端分离的后台管…

JS等比压缩图片方法

AI给出来的答案&#xff0c;AI真的能改变世界&#xff0c;以后程序员这个职业真的有可能不存在了。 function compressImage(image, callback) {// 创建一个 canvas 元素const canvas document.createElement(canvas);canvas.width 48;canvas.height 48;// 获取 canvas 的绘…

[WTL/Win32]_[初级]_[如何设置ListView的列宽不出现水平滚动条]

场景 开发WTL/Win32的程序时&#xff0c;经常会用到表格控件CListViewCtrl。这个控件需要设置列的宽度&#xff0c;当用完100%的宽度来平均分配给列宽时&#xff0c;一加载数据多&#xff0c;就会出现垂直滚动条后&#xff0c;水平滚动条也会同时出现的问题。怎么设置才能让水…

【研发日记】Matlab/Simulink开箱报告(十)——Signal Routing模块模块

文章目录 前言 Signal Routing模块 虚拟模块和虚拟信号 Mux和Demux Vector Concatenate和Selector Bus Creator和Bus Selector 分析和应用 总结 前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;五&#xff09;——S-Fuction模块(C MEX S-Fun…

单链表专题(上)(顺序表链表线性表)

在开始之前思考一个顺序表的问题 1. 中间/头部的插⼊删除&#xff0c;时间 复杂度为O(N) 2. 增容需要申请新空间&#xff0c;拷⻉数据&#xff0c;释放旧空间。会有不⼩的消耗。 3. 增容⼀般是呈2倍的增⻓&#xff0c;势必会有⼀定的空间浪费。例如当前容量为100&#xff0c;…

订单系统-RPC快速入门

RPC快速入门 概述 关于rpc&#xff0c;只需要知道他是一种协议&#xff0c;项目之间能够远程调用函数。 快速入门 我们前边下载好的两个包&#xff0c;在idea中打开之后&#xff0c;我们创建这么几个文件夹。 至于是干什么的&#xff0c;以后细说。创建好之后我们在produc…

从零开始搭建游戏服务器 第七节 创建GameServer

目录 前言正文创建GameServer模块修改配置创建NettyClient连接到登录服登录服修改创建协议游戏服注册到登录服 总结 前言 上一节我们使用自定义注解反射简化了协议解包和逻辑处理分发流程。 那么到了这里登录服登录服的架构已经搭建的差不多了&#xff0c;一些比较简单的、并发…

使用 Outline 构建 企业 or 个人 知识库面临的问题

前不久&#xff0c;我写了一篇文章&#xff0c;介绍《如何在本地部署安装 Outline》&#xff0c;我之所以写这篇文章&#xff0c;主要原因是我最近需要做一个项目&#xff0c;使用 Outline 来构建一个公司级知识库。所以我需要在本地先搭建一个&#xff0c;来撰写一些前期的文档…

【环境配置】Ubuntu MySQL 8.0.28 安装并允许外部客户端连接

文章目录 MySQL 安装步骤配置 MySQL Server 允许外部连接 MySQL 安装步骤 步骤一&#xff1a;在 MySQL 官网找到 apt 仓库&#xff0c;下载最新的仓库 点击 Download&#xff1a; 输入如下命令&#xff1a; sudo wget -c https://dev.mysql.com/get/mysql-apt-config_0.8…

2014年认证杯SPSSPRO杯数学建模A题(第一阶段)轮胎的花纹全过程文档及程序

2014年认证杯SPSSPRO杯数学建模 A题 轮胎的花纹 原题再现&#xff1a; 轮胎被广泛使用在多种陆地交通工具上。根据性能的需要&#xff0c;轮胎表面常会加工出不同形状的花纹。在设计轮胎时&#xff0c;往往要针对其使用环境&#xff0c;设计出相应的花纹形状。   第一阶段问…

JVM(三)——字节码技术

三、字节码技术 1、类文件结构 一个简单的 HelloWorld.java package com.mysite.jvm.t5; // HelloWorld 示例 public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }执行 javac -parameters -d . HellowWorld.…

Selenium 自动化 —— 实战篇之自动登录163邮箱

Selenium 自动化专栏系列文章 &#xff08;一&#xff09;入门和 Hello World 实例&#xff08;二&#xff09;使用WebDriverManager自动下载驱动&#xff08;三&#xff09;Selenium IDE录制、回放、导出Java源码&#xff08;四&#xff09;浏览器窗口操作&#xff08;五&…

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion)

AI时代-普通人的AI绘画工具对比&#xff08;Midjouney与Stable Diffusion&#xff09; 前言1、基础对比Stable Diffusion&#xff08;SD&#xff09;SD界面安装与使用SD Midjouney&#xff08;MJ&#xff09; 2、硬件与运行要求对比Stable Diffusion硬件要求内存硬盘显卡 Midjo…

Linux实现m4a格式转换为wav格式

需要在linux上安装ffmpeg 参考博客 Linux上安装ffmpeg修改环境变量【这一点很重要&#xff0c;自己因为没有添加环境变量&#xff0c;捣鼓了很长时间】 将ffmpeg的绝对路径添加到 PATH 环境变量中&#xff0c;以让系统能找到ffmpeg的安装路径。 # /home//project/ffmpeg-6.1-a…

Chrome/Edge 使用 Markdown Viewer 查看 Markdown 格式文件

Chrome/Edge 使用 Markdown Viewer 查看 Markdown 格式文件 0. 引言1. 安装 Markdown Viewer 插件2. 使用 Markdown Viewer 阅读 Markdown 格式文件 0. 引言 大部分程序员都喜欢 Markdown 格式的文件&#xff0c;这时给一些没有在电脑上安装 Markdown 编辑器的同事分享资料时&…

PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!

PCADBODBSCN聚类&#xff0c;蜣螂优化算法DBO优化DBSCN聚类&#xff0c;适合学习&#xff0c;也适合发paper&#xff01; 一、蜣螂优化算法 摘要&#xff1a;受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发&#xff0c;提出了一种新的基于种群的优化算法(Dung Beetle Optim…

zookeeper面试题

文章目录 ZooKeeper 是什么&#xff1f;ZooKeeper 提供什么&#xff1f;1. 文件系统2. 通知机制 ZooKeeper 文件系统四种类型的 znode1. PERSISTENT (持久化目录节点)2. PERSISTENT_SEQUENTIAL (持久化顺序编号目录节点)3. EPHEMERAL (临时目录节点)4. EPHEMERAL_SEQUENTIAL (临…