AlgarithmLearning_Day1:比较算法的对比————(太长了,先更新到Shell Sort)

CUDA(六). 从并行排序方法理解并行化思维——冒泡、归并、双调排序的GPU实现 在第五讲中我们学习了GPU三个重要的基础并行算法: Reduce, Scan 和 Histogram,分析了 其作用与串并行实现方法。 在第六讲中,本文以冒泡排序 Bubble Sort、归并排序 Merge Sort 和排序网络中的双调排序 Bitonic Sort 为例, 讲解如何从数据结构课上学的串行并行排序方法转换到并行排序,并附GPU实现代码。 在并行方法中,我们将考虑到并行方法需要注意 阅读详情

原文:click

这里是引用
在这里插入图片描述

  • Stable & Not Stable

稳定排序算法会将相等的元素值维持其相对次序。如果一个排序算法是稳定的,当有两个有相等元素值 R 和 S ,且在原本的列表中R出现在 S 之前,那么在排序过的列表中 R 也将会是在 S 之前。
在这里插入图片描述

  • O(n2) 与 O(n*logn) 的比较

在这里插入图片描述

  • 冒泡排序(Bubble Sort)
    重复比较要排序的数列,一次比较两个元素,如果后者较小则与前者交换元素:
    1、比较相邻的元素,如果后者比较大,则交换两个元素
    2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。
    3、针对所有元素重复以上的步骤,除了最后一个。
    冒泡排序对 n 个元素需要 O(n2) 的比较次数,且可以原地排序。冒泡排序仅适用于对于含有较少元素的数列进行排序。
    最差时间复杂度 O(n^2)
    平均时间复杂度 O(n^2)
    最优时间复杂度 O(n)
    最差空间复杂度 O(n),辅助空间 O(1)
  • 鸡尾酒排序(Cocktail Sort)
    鸡尾酒排序,也就是双向冒泡排序(Bidirectional Bubble Sort) ,是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序是以双向在序列中进行的排序。如果序列中大部分元素已经排好序时,可以得到比冒泡排序更好的性能。
    我们需要先将最大数据移动到最后,再把最小的移动到最前,这是一轮,直到所有的都排好。因为双向排序的两头都排序好了,我们只需要处理数组的中间部分即可,而单向即传统的额冒泡排序只有尾部的元素是排好序的,这时每轮处理都需要从头一直处理到已经排好序的元素的前面一个元素。虽然它在效率上有了点改进,但它也不能大幅度提高其排序的效率,这是由冒泡排序的基本过程所决定的。

本质上,算法没啥优化,只是双向进行调整,利用上浮和下沉

算法复杂度
最差时间复杂度 O(n^2)
平均时间复杂度 O(n^2)
最优时间复杂度 O(n)
最差空间复杂度 О(1)

//改进版的冒泡排序(双向冒泡)
void BidBubbleSort(int array[], int n)
{
    int low, high, flag, i;
    low = 0;
    high = n - 1;
    while(low < high)
    {
        flag=0;
        for(i=low; i<high; i++)  //正向冒泡
        {
            if(array[i] > array[i+1]) //找到剩下中最大的
            {
                Swap(&array[i], &array[i+1]);
                flag = 1;    //标志, 有数据交换
            }
        }
        if( !flag )
            break;
        high--;
        for( i=high; i>low; i-- ) //反向冒泡
        {
            if(array[i] < array[i-1])   //找到剩下中最小的
                Swap(&array[i], &array[i-1]);
        }
        low++;
    }

  • 奇偶排序(Odd-Even Sort)
    奇偶排序通过比较数组中个相邻的(奇-偶)位置元素,如果该奇偶元素对是错误的顺序(前者大于后者),则交换元素。然后再战队所有的(偶-奇)位置元素进行比较。如此交替进行下去。
    算法复杂度:
    最差时间复杂度 O(n^2)
    平均时间复杂度 O(n^2)
    最优时间复杂度 O(n)
    最差空间复杂度 О(1)

  • 快速排序 ( Quick Sort )
    快速排序使用 分治法 ( Divide-and-Conquer ) 策略将一个数列分成两个子数列并使用递归来处理。
    算法描述:
    –1、从数列中挑出一个元素,称为“主元”( pivot )。
    –2、重新排序数列,所有元素比主元小的摆放在主元前面,所有元素比主元值大的摆在主元的后面(相同的数可以放到任何一边)。这个称为分区(partition)操作。在分区退出之后,该主元就处于数列的中间位置。
    –3、递归地 ( recursively )把小于主元值元素的子数列和大于主元值元素的子数列排序。
    递归的最底部清醒,是数列的大小是0或1,也就是总是被排序好的状况。这样一直递归下去,直到算法退出
    递归的最后情况,就是数列的大小是0或者1,也就是说总是被排序好的状况。这样一直递归下去,直到算法退出。
    在这里插入图片描述

 QUICKSORT(A, p, r)
     if p < r
         then q <- PARTITION(A, p, r)
             QUICKSORT(A, p, q - 1)
             QUICKSORT(A, q + 1, r)
PARTITION(A, p, r)
    x <- A[r]
    i <- p - 1
    for j <- p to r - 1
        do if A[j] <= x
            then i <- i + 1
                exchange A[i] <-> A[j]
    exchange A[i + 1] <-> A[r]
    return  i + 1

最差时间复杂度 O(n^2)
平均时间复杂度 O(nlog n)
最优时间复杂度 O(n
log n)
最差空间复杂度 根据实现的方式不同而不同 O(n) 辅助空间 O(log n)

快速排序的运行时间与划分是否对称有关,而后者又与选择了哪一个元素来进行划分有关,如果划分是对称的,那么快速排序从渐进意义上讲,就与合并算法一样快;如果划分不是对称的,那么从渐进意义上来讲,就与插入排序一样慢。
快速排序的平均运行时间与其最佳情况运行时间很接近,而不是非常接近与最差情况运行时间。
QUICKSORT的运行时间是由花在过程PARTITION上的时间所决定的。每当PARTITION过程被调用时,就要选出一个Pivot元素。后续对QUICKSORT和PARTITION的各次递归调用中,都不会包含该元素。于是,在快速排序算法的整个执行过程中,至多只可能调用PARTITION过程n次。
快速排序的随机化版本
快速排序的随机化版本是对足够大的输入的理想选择。
RANDOMIZED-QUICKSORT 的平均运行情况是O(nlogn),如果在递归的每一层上,RANDOMIZED-PARTITION 所做出的的划分使任意固定量的元素向划分的某一边,则算法的递归树深度为 O(lgn),且在每一层上所做的工作量都为O(n)。

1 RANDOMIZED-PARTITION(A, p, r)
2     i <- RANDOM(p, r)
3     exchange A[r] <-> A[i]
4     return PARTITION(A, p, r)

快速排序是二叉查找树的一个空间优化版本。但其不是循序地把数据插入到一个显式的树种,而是由快速排序组织这些数据项到一个由递归调用所隐含的树中。这两个算法完全地产生相同的比较次数,但是顺序不同。
快速排序的最直接竞争对手是 (Heap Sort) 。堆排序通常会慢于原地排序的快速排序,其最坏情况的运行时间总是O(nlogn) 。快速排序通常情况下更快,但仍然有最坏情况发生的机会。
快速排序也会与合并排序(Merge Sort)竞争。合并排序的特点是最坏情况有着O(nlogn)运行时间的优势。不像快速排序或堆排序,合并排序是一个问你的个排序算法,而且非常灵活,其设计可以用于操作链表,或大型链式存储等,例如磁盘存储或网络附加存储等。尽管快速排序也可以被重写使用在链表晌,但对于基准的选择总是个问题。合并排序的主要缺点实在最佳情况下需要O(n)额外的空间,而快速排序的原地分区额尾部递归仅使用O(logn)的空间。

  • 选择排序(Selection Sort)
    算法原理:
    首先在未排序序列中找到最大或最小元素,存放到排序序列的起始位置,然后再从排序元素中继续寻找最大或最小元素,然后放到已排序序列的头部。以此类推,直到所有元素均排序完毕。
    在这里插入图片描述
    算法复杂度:
    最差时间复杂度 О(n²)
    平均时间复杂度 О(n²)
    最优时间复杂度 О(n²)
    最差空间复杂度 О(n),辅助空间 O(1)
  • 插入排序(Insertion Sort)
    算法原理:
    对于未排序数据,在已排序序列中从后向前扫描,找到相应位置,将位置后的已排序数据逐步向后挪位,将新元素插入到该位置。
    在这里插入图片描述
    算法描述:
    1、从第一个元素开始,该元素可以认为已经被排序
    2、取出下一个元素,在已经排序的元素序列中从后向前扫描
    3、如果该元素(已排序)大于新元素,将钙元素移到下一位置
    4、重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
    5、将新元素插入到该位置后
    6、重复步骤2~5

算法复杂度:
In-Place 原地排序(即只需要用到 O(1) 的额外空间)
最差时间复杂度 O(n2)
平均时间复杂度 O(n2)
最优时间复杂度 O(n)
最差空间复杂度 O(n),辅助空间 O(1)

由于插入排序的算法内循环是紧密的,对小规模来说是一个快速的原地排序算法。

  • 希尔排序(Shell Sort)
    希尔排序是插入排序的一种更高效的改进版本,其基于插入排序的以下两个特点提出改进方法:
    1、插入排序在对几乎已经排序的数据操作时,效率高,可以达到线性时间。
    2、插入排序一般来说是低效的,其每次只能将数据移动一位。

算法描述:
希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能,这样可以让一个元素一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需排序的数据几乎已排好,此时插入排序较快。
假设有一个很小的数据在一个以按圣墟排好序的数组的末端。如果用复杂度为O(n^2)的排序(冒泡排序或插入排序),可能会进行n次的比较和交换才能将该数据转移至正确位置。而希尔排序会用较大的步长移动数据,所以小数据只需进行少量比较和交换即可移到正确位置。
步长序列(Gap Sequences)
步长的选择是希尔排序的重要部分。只要最终步长为 1 人恶化步长串行都可以工作。算法最开始以一定的步长进行排序。然后会继续以一定的步长排序,最终算法以步长为1进行排序。当步长为1时,算法变为插入排序,这就保证了数据一定会被排序。
已知的最好步长串行是由 Sedgewick 提出的 (1, 5, 19, 41, 109,…),该步长的项来自 9 * 4^i - 9 * 2^i + 1 和 4^i - 3 * 2^i + 1 这两个算式。这项研究也表明 “比较在希尔排序中是最主要的操作,而不是交换。” 用这样步长串行的希尔排序比插入排序和堆排序都要快,甚至在小数组中比快速排序还快,但是在涉及大量数据时希尔排序还是比快速排序慢。
算法复杂度:
最差时间复杂度 O(nlog2 n)
平均时间复杂度 依赖于步长间隔 O(nlog2 n)
最优时间复杂度 O(nlogn)
最差空间复杂度 O(n),辅助空间 O(1)

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

相关推荐

别再手动配IP了!用NI-USRP Configuration Utility快速搞定USRP 2954与LabVIEW连接

本文详细介绍了如何使用NI-USRP Configuration Utility快速配置USRP 2954与LabVIEW的连接,解决传统手动IP配置的繁琐问题。通过图形化工具自动完成设备发现、IP设置和连接验证,大幅提升软件无线电实验效率,特别适合信号收发应用场景。

weixin_27102543的博客 291

【Big data】Odd even merge sort

Odd-even merge sort也是一种基于merge思想的排序算法。 对于merge类型的算法,只要知道如何merge,就知道如何排序。首先看odd-even merge。 假设现有x1,...,n和y1,...yn两个有序的数组,那么把x分成xodd和xeven两部分,也就是下标时奇数和偶数两部分,y同理,然后递归merge xodd和yodd,递归merge xeven和yeven

u010900754的专栏 1552

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek

Win10环境借助DockerDesktop部署Open web UI集成DeepSeek,并借助DuckDuckGo实现联网查询

虎鲸不是鱼 1698

十大经典比较算法

推荐一个比较好的博客:https://www.cnblogs.com/onepixel/articles/7674659.html 此贴仅做记录不做解释。

Du_Shuang的博客 5787

Dify安装使用说明

dify可以说是一个功能不错的LLMOps,可以通过dify集中管理模型,可以通过界面创建AI应用,可以上传文档形成知识库,可以创建自定义工具(API),并可以对外提供API。相关功能类似Openai的GPTs或智谱的智能体,其他大厂的大模型也有类似功能,不过貌似只有dify是开源的。这就为个人本地部署AI应用提供了便利。

龙井茶的Sky 1万+

用野火FPGA开发板(EP4CE10)手把手教你实现一个高精度频率计(附完整Verilog代码)

本文详细介绍了基于野火FPGA开发板(EP4CE10)实现高精度频率计的全过程,涵盖等精度测量法的核心原理、Verilog代码实现及优化技巧。通过实际案例演示,帮助开发者掌握1Hz-50MHz范围、精度达0.1%的频率计设计方法,并提供完整的工程代码和实测数据。

weixin_29261711的博客 439

八大基于比较的排序算法及三大基于非比较的排序算法总结

排序是历年考试常考, 面试常问的问题, 因此需要多加练习最基本的几种排序方式, 对于剩下的排序算法只需要理解即可.

Fug_Lee的博客 1378

Vue3 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!

vue3,nuxt3,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue3西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,自定义播放器样式,截屏,监控视频,vue3使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,

🏆 前端领域优质创作者 1万+

C++深入浅出讲解希尔排序算法的实现

希尔排序(Shell sort)是插入排序的改进版,由 Donald Shell 在 1959 年提出。它的思路很朴素:插入排序在数组「基本有序」时非常快,那能不能先做一些粗粒度的排序,让数组变得基本有序,最后再做一次完整的插入排序?于是它引入「增量」(gap),把相隔gap的元素看成一组,对每组做插入排序;不断缩小gap,直到gap == 1,做最后一次普通插入排序。围绕希尔排序的常见误解有两个。第一,以为它的复杂度是固定的 O(n log n);实际上希尔排序的时间复杂度取决于增量序列。

eggwyw的博客 105

ATE Pin Electronics电路学习总结

PinElectronics(PE)是ATE测试机的核心模拟前端电路,负责ATE与芯片间的信号转换与交互。主要包含四大功能模块:Driver实现逻辑信号到模拟电平的转换(VIH/VIL可编程);Receiver对DUT输出进行采样比较(VOH/VOL判定);ActiveLoad施加可编程电流负载;PPMU进行精密电压/电流测量。PE的性能直接影响功能测试和直流参数测试的精度,需定期校准维护。关键参数包括:Driver电压精度(±5mV)、Receiver比较精度(±10-50mV)、PPMU测量精度(±1-

歌颂苦难的行为是无耻的; 464

uniapp - 应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准(uniApp开发安卓APP上架应用市场审核被拒绝驳回,详细解决方案)

uniApp应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准。uniapp vue2 vue3解决软件在运行时,未见向用户告知权限申请的目的,华为等上架被拒问题,关于华为应用市场上架需要同步告知使用权限的解决方案,uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!app上架-您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。华为应用市场审核新规(未同步告知权限申请的使用目

🏆 前端领域优质创作者 4162

【数据结构】基于比较的排序算法 - 交换排序

本文介绍交换排序中的冒泡排序与快速排序。冒泡排序通过相邻元素比较交换,实现升序,时间复杂度最坏为O(N²),空间复杂度O(1),稳定且适合小规模有序数据。快速排序采用分治思想,以基准值划分区间,平均时间复杂度O(N log N),空间复杂度O(log N),但不稳定,实际应用中性能优异,可通过随机基准、小区间优化等提升效率。

careathers的博客 317

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

《排序的底层逻辑:比较、交换与分治》

时间复杂度取决于BAP,最好能达到o(n1.3gap大:分组的元素比较少gap下:分组的元素整体比较有序是否稳定:不稳定。

bro_Java666的博客 223

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

排序算法深度笔记(上):比较类排序的思想演进与代码实现

与。本文聚焦前者 —— 也就是通过元素间两两比较来确定相对顺序的排序算法,从最朴素的 O (n²) 基础排序,到工业级主流的 O (nlogn) 进阶排序,逐层拆解设计思想、带注释的代码实现与边界细节。当我们理解了比较排序的性能边界,也就自然引出了非比较排序的存在意义。所有代码均遵循统一的实现规范:入口函数前置空数组与单元素边界校验,基于数组原地修改,主函数附带可直接运行的测试用例,与练习代码风格完全对齐。

2401_87069538的博客 594

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 15

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 437

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 362

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 77

AI和大模型—从克里金算法说开去

克里金算法源于矿业勘探,通过空间自相关性实现稀疏数据下的最优预测,核心优势在于不确定性量化。在AI大模型中,其等价于高斯过程,广泛应用于超参数优化、小样本建模与推理调度。尽管面临计算复杂度高、核函数选择难等问题,通过稀疏化、分治法与低秩近似可有效优化。该方法在降低训练成本、提升泛化能力及减少幻觉方面表现突出,尤其适用于高维、高成本的智能系统优化,具有重要借鉴价值。

fpcc的专栏 602

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 176

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 306

不同的二叉搜索树

互不相同的二叉搜索树的种数,以 j (1<=j<=i)为头节点,左子树是 j-1 个数,右子树就是 i - (j - 1) -1 = i - j个数。所以dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]头1 = 左子树0节点 * 右子树2节点,二叉搜索树就是排序树,左子树<根节点<右子树,左右子树也满足左子树<根节点<右子树。头2 = 左子树1节点 * 右子树1节点。所以dp[i] += dp[j-1] * dp[i-j]个节点组成且节点值从。

qq_44721738的博客 150

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 381

固件开发岗算法

背景:嵌入式固件岗,偏爱手写库函数、位运算、数组基础算法。

2502_90352018的博客 109

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 161
上一篇: Leetcode 91. 解码方法——————从我刷了五十多道力扣后决定从C转向C++再由这题让我下定先好好学习算法的那些事
下一篇: AlgarithmLearning_Day1.2 (《算法笔记》第四章 入门篇(2)算法初步)
Neepu_G.job
博客等级 码龄8年 7粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值